我需要使用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。 但是由于我在表单上进行了验证,因此它没有响应按钮时钟。 我怎么能在按钮上添加验证呢?
答案 0 :(得分:0)
请记住,您的字符串比较是精确搜索。看起来你在尝试的代码中有一个额外的空格,在“数字”之后。尝试删除该空间并再次测试。如果textfield的值与占位符值完全匹配,则depends
方法应返回true。或者,您可以尝试$.trim()
以确保删除字符串开头和结尾的空格。
您可以考虑的另一种方法是实例化“原始值”属性(使用jQuery的data
方法),这样如果您的占位符值发生更改,则无需更新JavaScript验证代码。