2013-10-01 52 views
0

美好的一天。在提交動態表單的jQuery前檢查字段是否爲空

我有動態表單數,輸入字段的總數不詳,

我想用一個簡單的驗證功能,如:由於我將使用

function check_submit() { 
    if ($(this).val().length == 0) { 
    $(":submit").attr("disabled", true); 
    } else { 
    $(":submit").removeAttr("disabled"); 
    } 
} 

在不同動態表單的數量上有相同的功能,每個表單都有自己的「必填字段」我希望能夠傳遞未知數量的需要填充的類,函數應該確保該類中的每個字段都被填充。

有什麼建議嗎?

回答

1

請嘗試以下代碼:

$('form.classnameofelement').each(function(){ 
if($(this).val().length != 0){ 
    // do somthing; 
    }else{ 
    // do nothing; 
    } 
}); 

讓我知道如果任何查詢。

謝謝。

+0

不幸的是,它沒有奏效。它似乎也是爲了使每個語句都能運行,我需要將該函數綁定到某個操作上,我更願意避免這種操作。我也無法理解如何在「main.js」文件中聲明此函數,並通過傳遞未知數量的類來爲每個單獨的表單調用它。再次感謝您的幫助。 – shultz

+0

我還冒昧地將選擇器更改爲('input.class') – shultz

+0

是的,您甚至可以使用input.class,並且您只需要將這個循環放在表單提交或onbutton單擊事件中即可。我認爲這會很有用。 – Chandresh

0

對於支持它的瀏覽器,您可以使用「required」屬性。對於那些不,你可以做到以下幾點:

更新你的投入是這樣的:

<input name="test1" required> 
<input name="test2" required> 
<input name="test3" required> 

您可以檢查是否所有的輸入有像這樣的值:

var unfilled = $('[required]').filter(function() { 
    return $(this).val().length === 0; 
}); 

if (unfilled.length > 0) { 
    // still unfilled inputs 
    unfilled.css('border', '1px solid red'); 
} 
0

我我已經離開了這幾天, 但今天我設法創造了一個工作功能

$("form").submit(function(event) { 
var empty_fields = []; 
$(".chck").each(function(){ 
    if($(this).val().length !=0) { 
     return; 
    }else{ 
     empty_fields.push($(this).attr('name')); 
     event.preventDefault();} 
    }); 
if(empty_fields){ 
    alert(empty_fields); 
} 

}); 

我只需要確保所有必填字段都有class =「chck」, 我希望有人會在未來發現它有用。