我有兩個AJAX函數。第一個函數獲取第一個輸入字段的結果並連接一個字符串,然後更改第二個輸入字段的值。第二個輸入字段是(type=」hidden」)
。第二個函數檢查是否在第二個輸入字段中觸發了更改,然後在第三個輸入字段中顯示該值。什麼都沒有通過的值在輸入欄#2 Example關於隱藏輸入字段內的更改事件
<script>
$(document).ready(function() {
var timer = null;
var $result=$("#result");
$result.data('url',$result.val());
function submitForm(input) {
$.ajax({
type: "POST",
url: "/concatenate/index.php",
data: {input:input},
dataType: "html",
success: function (data) {
var url=$result.data('url'),
newUrl= url+input+'/';
$result.val(newUrl);
}
});
return false
}
$("#input").on("keyup", function() {
var input = $(this).val();
clearTimeout(timer);
timer = setTimeout(function(){
submitForm(input) ;
}, 40);
})
});
$(document).ready(function() {
var timer = null;
var $result=$("#result").val();
function submitForm(input) {
$.ajax({
type: "POST",
url: "/concatenate/index.php",
data: {input:input},
dataType: "html",
success: function (data) {
$result.val();
}
});
return false
}
$("#result").on("change", function() {
var input = $(this).val();
clearTimeout(timer);
timer = setTimeout(function(){
submitForm(input) ;
}, 40);
})
});
</script>
</head>
<body>
<h1>Enter a word:</h1>
<form action="index.php" method="post">
Input: <input type="text" id="input" name="input"></br>
Concatenated Result1(hidden): <input type="hidden" style="width:200px;" id="result" name="result" value="http//www.example.com/"></br>
Concatenated Result2: <input type="text" id="result2" name="result2" value=""></br>
</form>
是不是真的需要換你的腳本在兩個單獨的DOM準備的事件&mash;一個就夠了:) – Terry
@Terry,你能告訴我怎麼樣?我試過,但它不適合我 – techAddict82
爲什麼2 ajax調用?它看起來像第一個對響應「數據」沒有任何作用。這可能只是一個沒有Ajax調用的函數。也許稍微澄清一下你想要完成的事情會有所幫助。將所有內容放在一個onload中的問題是,您在兩者中都使用'submitForm'。所以如果你把它們都放在一個onload中,你需要改變你的函數名。 –