2013-08-30 27 views
1

我有一個表格我想驗證一個textarea的:驗證驗證空所需的文字區域的形式返回true

<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() 

它返回一個空的textarea我期望它返回false。 內部,當它收集規則的element.attr('required')值最終被'required'由於某種原因,當屬性的值是'true'和所需的方法返回'dependency-mismatch'形式。我不確定這些事情是什麼意思,但可能他們與valid()連接返回true而不是false如我所料。

我在這裏做錯了什麼?

編輯:對不起,我在問題中的失誤,我的意思是.valid().validate()

+0

我可以看到你困惑,因爲'.validate()'如你預期的不行爲。但是,你也沒有解釋你真正想要完成的事情。 – Sparky

+0

對不起,我的意思是,我叫.valid(),而不是.validate(),這使得當然有很大的區別 – axk

+0

我有一個文本區域是必需的,我試圖檢查表單是否有效,即如果文本不是空的。我沒有這樣做標準的方式插件對提交的表單作出反應,因爲表單沒有提交,實際上我只是添加了表單標籤才能夠用戶jQuery驗證 – axk

回答

1

報價OP:

當我打電話$('#dialog').validate()一個空的textarea返回true,而我 期望它返回錯誤。在內部,當它收集規則爲 形式element.attr(「必要」)被「必要」 由於某種原因,當屬性值是「真」結束的值和 所需的方法返回「依賴性失配」。我不知道這是什麼東西 意思,但可能與它們的validate()返回連接 真實,因爲我希望它不是假的。

我在這裏做錯了什麼?

我不知道你在這裏試圖做什麼。該.validate()方法通常只用於一件事... intializing插件的形式,而你只會在DOM準備把它一次

$(document).ready(function() { 

    // initialize the plugin with your options 
    $('#dialog').validate({ 
     // rules, options, and callback functions 
    }); 

}); 

DEMOhttp://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 

DEMOhttp://jsfiddle.net/WHheY/2/


否則,你通常只使用了僅一個有效的形式解僱事件發生時提交的submitHandler回調函數。

$(document).ready(function() { 

    $('#dialog').validate({ 
     // rules, options, and callback functions, 
     submitHandler: function(form) { 
      // your ajax 
      return false 
     } 
    }); 

}); 

DEMOhttp://jsfiddle.net/WHheY/4/

+0

對不起,我的意思是我叫.valid(),不.validate(),這使得當然有很大的區別 – axk

+0

@axk,我不'不要看你描述的問題。請參閱:http://jsfiddle.net/JSXxx/1/和http://jsfiddle.net/JSXxx/2/ – Sparky