2012-03-25 69 views
0

我需要使用JavaScript来验证我的文本框,到目前为止,我做了这个:验证在JavaScript:空的文本框,当单击该按钮

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

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

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

的检索算法形式:

<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 
     }, 

但没有任何变化。

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


谢谢!

你是对的,它工作正常,如果我删除文本框中的任何值我得到所需的味精。 但由于我在窗体上进行了验证,它没有响应按钮时钟。 我该如何在按钮上添加验证?

回答

0

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

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

+0

谢谢! 你是对的,它工作正常,如果我删除文本框中的任何值,我得到要求的味精。但由于我在窗体上进行了验证,因此它没有响应按钮时钟。我怎样才能在按钮上添加验证呢? – Noon 2012-03-27 05:03:57

+0

我假定按钮应该提交表单,因此应该调用'validate'方法。你使用的是jQuery Validator插件还是其他的东西? – Jona 2012-03-28 12:59:32