我有一个表单,我想验证textarea:
<form action="" id="dialog">
<textarea name="message-text" class="message-text" rows="5" cols="30" required="true" style="margin-top: 35px;margin-bottom: 25px"></textarea>
<span style="color: red; display: none" class="error-message">An error occured while sending the message.</span>
<a href="" class="button send-message">Send</a>
<a href="" class="button cancel-sending">Cancel</a>
</form>
当我打电话
$('#dialog').valid()
使用空文本区域,它返回true
,而我希望它返回false。
在内部收集表单规则时,如果属性值为element.attr('required')
并且所需方法返回'required'
,则'true'
的值由于某种原因最终为'dependency-mismatch'
。我不确定这些内容是什么意思,但可能与valid()
有关true
而不是false
正如我预期的那样。
我在这里做错了什么?
修改:对不起我在问题中的错误,我的意思是.valid()
而不是.validate()
答案 0 :(得分:1)
引用OP:
当我用空的textarea调用
$('#dialog').validate()
时,它返回true而我 期望它返回虚假。在内部收集规则时 形成element.attr('required')的值最终成为'required' 由于某种原因,属性的值为'true'而且 required方法返回'dependency-mismatch'。我不确定这些是什么 事情意味着但可能它们与validate()返回有关 是真的,而不是我所期望的那样。我在这里做错了什么?
我不知道你在这里尝试做什么。 .validate()
方法通常仅用于表示初始化表单上的插件,并且您只能在DOM就绪时将其称为一次。< / p>
$(document).ready(function() {
// initialize the plugin with your options
$('#dialog').validate({
// rules, options, and callback functions
});
});
DEMO :http://jsfiddle.net/WHheY/
如果您正在寻找一个布尔值来告诉您表单的状态,那么您需要随后调用the .valid()
method ...这就是它的用途。请参阅:https://stackoverflow.com/a/18221081/594235
if ( $('#dialog').valid() ) {
// something to do when the form is valid
};
它还会触发验证...
$('#dialog').valid(); // trigger a test
DEMO :http://jsfiddle.net/WHheY/2/
否则,您通常只使用submitHandler
回调函数,该函数仅在发生提交事件时在有效表单上触发。
$(document).ready(function() {
$('#dialog').validate({
// rules, options, and callback functions,
submitHandler: function(form) {
// your ajax
return false
}
});
});