表单在不应该提交时提交

时间:2012-01-30 03:16:06

标签: javascript

我的jsfiddle应用程序click here存在问题。当你打开小提琴然后你会看到一个textarea,请按照下面的步骤(在任何borwser但IE浏览器):

1:在textarea中输入问题

2:点击“AddQuestion”按钮。您输入的问题将附在下表中。

3:删除刚刚在下表中添加的textarea中的所有文本

4:现在点击下面的“提交详细信息”按钮。

现在您可以看到它正在尝试提交详细信息并进入新页面。这不应该发生,因为我在验证函数中声明如果表中附加的textarea为空或“”,则显示一条警告,说明“请输入有效问题”。即使问题有效,也应显示一个确认框,说明您是否要继续。

当点击提交按钮时,它应该跟随“myClickHandler”,但为什么不这样做呢?

3 个答案:

答案 0 :(得分:0)

计划a:

$("#addQuestionBtn").click(function(event) {
    event.preventDefault();
    ...
});

计划b:

$('#enter').submit(function() {  
    ....  
    return false;  
});

添加“return false;”最后

<强>引用

http://api.jquery.com/submit/

事件处理程序可以绑定到表单:

$('#target').submit(function() {  
    alert('Handler for .submit() called.');  
    return false;  
});

现在提交表单时,会提示消息。这在实际提交之前发生,因此我们可以通过在事件对象上调用.preventDefault()或从我们的处理程序返回false来取消提交操作。我们可以在单击另一个元素时手动触发事件:

答案 1 :(得分:0)

使用event.preventDefault()取消表单提交。

顺便说一句,你可能意味着textAreaO.length,而不是textAreaO.value.length抛出TypeError

答案 2 :(得分:0)

validate()函数中的textAreaO变量可能包含选择中的多个项目。遍历每个项目并对每个项目进行检查:

var isValid = true;
 $(textAreaO).each(function() {
     isValid = isValid && //insert your validation check here;
 });

 if(!isValid) alertValidation += "\nYou have not entered a valid Question\n";