所以,我試圖在提交表單到AJAX之前驗證具有「必需」屬性的HTML輸入,並且我無法弄清楚我的生活如何做到這一點字段有一個唯一的ID(這是不可能的,因爲我真的希望能夠添加「required」到字段並重用代碼而不必向其中添加多個ID)。檢查是否有多個必填字段爲空
這裏是我的HTML的snipett,所以你可以看到什麼,我選擇:
<div class="control-group">
<label class="control-label"><span class="req">*</span> Contact Name:</label>
<div class="controls">
<input class="input-block-level" type="text" name="contactTitle" value="{$widget.options.contactTitle}" placeholder="Marty McFly" required />
</div>
</div>
而這裏的jQuery的:
function configureSubmit() {
var reqInput = "input[required]"
if($(reqInput)) {
$(reqInput).each(function() {
if(!$(this).val()){
$('input[required]').addClass('falseVal');
} else {
$('input[required]').removeClass('falseVal');
}
});
}
if ($(reqInput).hasClass('falseVal')) {
alert("Please fill in all required fields.");
$('input[required]').css('border', '1px solid red');
} else {
$.ajax({
type: 'POST',
url: $("#options-form").attr('action'),
data: $("#options-form").serialize(),
success: function(data) {
if (data=='1') {
if ($.inArray(configureId,staged_widgets)<0) {
staged_widgets.push(configureId);
}
$("#configure").modal('hide');
$("#widget-"+configureId).removeClass('new-widget');
updateWidget(configureId);
}
}
});
}
而且提交按鈕:
<input type="submit" class="btn btn-primary" onclick="configureSubmit(); return false;" Value="Update" />
正如你所看到的,如果字段是空的,我將添加一個類,然後在填充字段時刪除一個類。然後我檢查這個課程,如果它不存在,它會提交。
這裏的問題是,如果我不使用。每()選擇和我有一個以上的必填字段,只要第一填報的,它會提交給AJAX。如果我做使用.each()選擇器,它可以正確地爲所有字段爲空,除了最後一個。如果填入最後一個字段,它將提交給AJAX,因爲該函數將從所有必填字段中刪除「falseVal」類。
有一個更好的方法來做到這一點!有任何想法嗎?
Aweso我!非常感謝你,它的工作!我知道必須有一個更簡單的方法! :P – MatrixClaw