JavaScript中的验证:单击按钮时为空文本框

时间:2012-03-25 16:24:25

标签: javascript jquery validation

我需要使用JavaScript验证我的文本框,到目前为止我做到了这一点:

$(document).ready(function(){
$('#search_form').validate({
rules: {
 searchText:{
     required: true,    
     number: true
            },
  },
 messages: {

     searchText: {
      required: "required",
      number: "must be a number"
     }}
      })}
    );

它工作正常,但如果用户按下搜索按钮而不输入任何值,我还需要显示一条消息,当然文本框中包含消息“请输入您的号码”(使用占位符)。

serach表格:

<form method="get" id="search_form">
<input type="button" value="search" id="search" />
<input type="text"  name="searchText" id="searchText" placeholder="please enter your number"    />
</form> 

当前代码没有显示任何如果用户按下搜索按钮而不插入数字,但如果他插入字母例如他将收到消息“必须是数字”并且如果他删除任何如果文本框中有值,他将收到消息“必需”。

我试过了:

searchText:{
     required: {  depends: function()
        { return $( "#searchText" ).val() == 'please enter your number '} },    
     number: true
        },

但没有任何改变。

我希望我能很好地解释我的问题。


谢谢!

你是对的,如果我删除文本框中的任何值,我得到了所需的msg。 但是由于我在表单上进行了验证,因此它没有响应按钮时钟。 我怎么能在按钮上添加验证呢?

1 个答案:

答案 0 :(得分:0)

请记住,您的字符串比较是精确搜索。看起来你在尝试的代码中有一个额外的空格,在“数字”之后。尝试删除该空间并再次测试。如果textfield的值与占位符值完全匹配,则depends方法应返回true。或者,您可以尝试$.trim()以确保删除字符串开头和结尾的空格。

您可以考虑的另一种方法是实例化“原始值”属性(使用jQuery的data方法),这样如果您的占位符值发生更改,则无需更新JavaScript验证代码。