2013-02-05 85 views
0

我想要做的驗證所有的表單字段上提交

if(in_array(all form values) == 'empty') { 

這裏基本上是我現在這樣做是經過8個表單輸入值,一個Javascript的Ajax文件,在這個過程中是當前的代碼我是使用

if($("#merchant").val()==='') { 
     //prevent submit button to sending to the handler page 
     event.preventDefault(); 
     //popup the alert 
     $("#response").html("<br/><div class='alert alert-error'>Please enter a Merchant Name</div>"); 
     $("#response").slideDown('slow'); 
     slideout(); 
     $("#loading").fadeOut('slow'); 
} 

但使用此代碼,我必須複製並粘貼每個字段約8次,我寧願做一個數組檢查如果可能的話。

這是可能與JavaScript?如果是的話如何?

+1

可能重複http://stackoverflow.com/questions/237104/array-containsobj-in-javascript) –

+1

看看[這個問題](http://stackoverflow.com/questions/784012/javascript-equivalent-of-phps-in-array)(另外,可能是一個愚蠢)。 – thordarson

回答

2

遍歷像這樣形式的:inputs,在submit事件假設你和形式是this

$(':input', this).each(function(e) { 
    if ($(this).val() === '') { 
     // do your stuff 
    } 
}); 

你也可能會附上您的錯誤信息作爲數據屬性,像這樣引用它

<input type="text" ... data-error-msg="Some Error Message"/> 

$(this).data('error-msg'); 
+0

這不會工作,因爲我不是通過表單調用值,我通過字段的'id'屬性調用它們。 –

+0

我知道...我在說你不應該用'id'屬性來調用它們......以不同的方式收集它們,然後用'.each()'循環它們。 – jondavidjohn

0

此功能完善

function in_array(item,arr) { 
    for(p=0;p<arr.length;p++) if (item == arr[p]) return true; 
    return false; 
} 

使用方法如下

if(in_array("value", myarray)) 
{ 
    // Do something 
} 
+0

How我會去檢查沒有值的空字段嗎?因爲那只是檢查長度超過一個的項目? –

+0

如果($(element).val()==「」) 你可以用 查詢 –

+0

這就是我現在正在做的事,但是我想要全部做到1),而不是調用相同的'if($(「#merchant」)。val()===''){'大約8次,我寧願做一個簡單的'if(in_array(' ',$ array);'但我不知道如何在javascript中 –

-1

這將僅選擇空元素:

$(".my-class:empty").each(function() { 
    // Do things 
}); 
[array.contains(OBJ)在JavaScript(的
+0

閱讀':empty'選擇器的文檔.... http://api.jquery.com/empty-selector/ – jondavidjohn

+0

他們目前已經有一個定義在當前頁面上使用的類,這會導致一些問題 –