2015-06-04 23 views
-2

另一種方法的方法,所以我想在的方法使用「這個」裏面選擇另一種方法,例如:

$('form').submit(function(event){ 
    $('input').each(function(){ 
     if($(this).val().length < 2){ 
      $(this).addClass('error'); 
      event.preventDefault(); 
     } 
    }); 
}); 

當我做了,我認爲它會承認'this'作爲每個輸入,但不是'this'選擇符與表單關聯。我知道,因爲結果是:

<form class="error" action="lorem.php" method="post"> 
    <input type="text" placeholder="Lorem Ipsum" name="example"> 
</form> 

這只是一個例子來說明,當我提交表單,類「錯誤」成爲「形式」的標籤。

我想知道如何在'each'方法內調用'input',因爲'this'似乎不起作用。

我希望我在這裏提出我的觀點,如果有人需要更多解釋,請告訴我。

非常感謝!

+4

代碼工作正常http://jsfiddle.net/5rq3w7h6/1/ – guest

+0

您是否嘗試過給輸入一個'VAL =「」'屬性,也許這就是爲什麼它不會工作?或者控制檯中是否有任何錯誤? – Paul

+0

對我感到羞恥,謝謝,問題不是概念而是執行。 –

回答

1

您需要將索引和元素髮送給您的函數。

$('form').submit(function(event){ 
    $('input').each(function(index, element){ 
     if($(element).val().length < 2){ 
      $(element).addClass('error'); 
      event.preventDefault(); 
     } 
    }); 
}); 
+1

對文檔的引用:https://api.jquery.com/each/ – Sgnl

+1

不,你不需要,'each(function(index,element))'中的索引和元素是可選的, Sgnl鏈接 – NotJustin

+0

@Ohohorion它是可選的,但它更明確地使用這些引用,而不是依賴於'this'指的是什麼。 – Sgnl