我有动态创建的输入,我试图使用onBlur提交它们的值。我还是jQuery和AJAX的新手,有人可以向我解释为什么函数没有被调用吗?
输入:
<input type="text" class="quantity" onblur="updateQuantity()" name="quantity[]"/>
脚本:
<script>
function updateQuantity() {
$(".quantity").blur(function(){
var quantityValue = $(this).val();
$.ajax({
url: "pages/inventory_request_action.php",
cache: false,
type: 'POST',
data: quantityValue,
success: function(data) {
// do something
}
});
});
}
</script>
答案 0 :(得分:1)
您正在注册blur
事件侦听器两次(一次在输入元素的onblur
属性中,另一个在updateQuantity
函数中)。所以真正发生的是一旦输入模糊,你实际上并没有调用ajax函数,而是添加另一个事件监听器..
所以,从你的输入元素中删除onblur="updateQuantity()"
,因为你是通过jquery添加相同的监听器,并重新安排updateQuantity函数中的逻辑,这样它只进行ajax调用,而不用担心添加事件听众。
<强> HTML 强>
<input type="text" class="quantity" name="quantity[]"/>
<强>的Javascript 强>
function updateQuantity(quantityValue){
alert('submitting quantityValue: ' + quantityValue);
$.ajax({
url: "pages/inventory_request_action.php",
cache: false,
type: 'POST',
data: {quantityValue: quantityValue},
success: function(data) {
}
});
}
$('.quantity').blur(function(){
var val = $(this).val();
updateQuantity(val);
});