我有一个在加载文档后生成的表单。我试图用return false;
停止提交,但它不会阻止表单重新加载文档。这是我的代码:
$('#name-update.updateAcct').live('submit', function(){
var action = $(this).attr('data-action');
console.log(action);
switch(action){
case "name":
var firstName = $(this).children('input#contct_firstName').val();
var lastName = $(this).children('input#contct_lastName').val();
console.log(firstName+" "+lastname);
break;
}
return false;
});
我不知道为什么这句话没有停止表格。
答案 0 :(得分:2)
尝试将event.preventDefault();
添加到观察者的顶部:
$('#name-update.updateAcct').live('submit', function(event){
event.preventDefault(); // stop default form submission
var action = $(this).attr('data-action');
console.log(action);
switch(action){
case "name":
var firstName = $(this).children('input#contct_firstName').val();
var lastName = $(this).children('input#contct_lastName').val();
console.log(firstName+" "+lastName);
break;
}
return false;
});
答案 1 :(得分:2)
下面:
console.log(firstName+" "+lastname);
lastname
不存在(应该是lastName
)=>抛出javascript错误=> .live
函数永远没有时间到return false
=>表格正常提交。
就获取这些名称而言,我发现你使用的是id选择器,因为HTML中的id应该是唯一的,你可以像这样简化你的生活:
var firstName = $('#contct_firstName').val();
var lastName = $('#contct_lastName').val();
或:
var firstName = $('input#contct_firstName', this).val();
var lastName = $('input#contct_lastName', this).val();
但老实说,代码越短,发生错误的概率就越小。