2012-08-06 62 views
0

我在jquery中有這個函數,驗證所有字段是否至少有一個字符輸入,我的意思是,如果它們不是空的,如下代碼所示:在jquery驗證一個表單的輸入字段

function validateStep(step){ 
    if(step == fieldsetCount) return; 

    var error = 1; 
    var hasError = false; 
    $('#formElem').children(':nth-child('+ parseInt(step) +')').find(':input:not(button)').each(function(){ 
     var $this  = $(this); 
     var valueLength = jQuery.trim($this.val()).length; 

     if(valueLength == ''){ 
      hasError = true; 
     } 

    }); 
    var $link = $('#navigation_form li:nth-child(' + parseInt(step) + ') a'); 
    $link.parent().find('.error,.checked').remove(); 

    var valclass = 'checked'; 
    if(hasError){ 
     error = -1; 
     valclass = 'error'; 
    } 
    $('<span class="'+valclass+'"></span>').insertAfter($link); 

    return error; 
} 

它發生在我有這樣一個大的形式,有一個領域是不需要的。我仍然有一些難以實現的jQuery代碼,我不明白如果我可以插入在這個函數的中間,說特定的領域是不需要的。

任何人都可以給我一點幫助嗎?

在此先感謝!

回答

1

嘗試檢查,看看是否當前元素的ID不匹配的元素的要排除的ID:

var $this = $(this); 
if($this.attr('id') != 'SOMEID'){ 
    // Validate 
} 
+0

只是一個疑問RobB,will!= work?即使我們談論的是元素的id,他們是正確的嗎? – user1511579 2012-08-06 13:15:05

+0

解決,非常感謝,完美地工作! – user1511579 2012-08-06 13:25:57

+0

'attr('id')'返回一個字符串值,這就是爲什麼你可以對'string!= string'進行比較的原因。 – RobB 2012-08-06 13:33:14

1

,你可以用一個特定的類標記您的必填字段,迭代線槽其中有這樣的類字段「必要」,這可以很容易地改變你的決定,你要檢查

,我建議從http://bassistance.de/jquery-plugins/jquery-plugin-validation/由喬恩Zaefferer jQuery的驗證插件哪些字段,它使用這種技術來驗證表單

+0

已經解決了,謝謝你的回覆; – user1511579 2012-08-06 13:27:18

0

爲什麼不只是添加一個屬性 - isRequired = true || isRequired = false,然後收集並驗證屬性值所需的元素?

+0

已經解決了,謝謝你的回覆; – user1511579 2012-08-06 13:26:27