jquery验证问题

时间:2010-11-29 07:44:14

标签: jquery

我有一个与jquery有关的问题。基本上我想做一件非常简单的事情。我有一个文本输入字段。提交时,如果字段为空,我想显示错误消息。 我这样做了:

errMsg = "Please write name";               
$("div#errMsg").css("background-color", "red");
 $("div#errMsg").html(errMsg);

并在HTML中:

<div id="errMsg"></div>
<strong>Name:  </strong>
<input name="name" id="name" type="text" maxlength="255" size="50" />

它工作正常,但有问题。当我将该字段留空并显示错误消息时,如果不刷新页面,错误消息就不会消失。 我正在尝试这样做,以便当有错误消息,并在字段中键入内容时,它会自动删除错误而不刷新页面。

4 个答案:

答案 0 :(得分:1)

您通过返回false来阻止提交。例如。

if($('#name').val().trim() == "")
{
    Alert('Please write name');
    return false;
}

答案 1 :(得分:0)

在输入文本框中,您需要检测文本的更改:

$("#name").onChange( function(event){ //Re-evaluate to see if error should be displayed} );

答案 2 :(得分:0)

答案 3 :(得分:0)

您可以在页面首次加载到#name元素的change event时附加处理程序,如下所示:

$("#name").change(function() {
  //with .toggle(bool) we're only showing the element if the value's empty
  $("#errMsg").toggle(this.value == "").html("Please write name");
}).change(); //call it initially, in case we started invalid

这还涉及为样式提供<div> CSS,这更容易维护:

#errMsg { background-color: red; } /*could also use a class and apply that here*/

在你的submit()处理程序中没有必要(除非你以编程方式更改值),但如果你觉得需要再次运行检查,只需调用.change()再次执行处理程序,就像这样:

$("#name").change();