2012-07-05 30 views
0

我有兩位代碼:一個表單和一個jQuery函數。jQuery從類中獲取參數並在函數中使用它們

我的問題是,我想獲得類的屬性,並在窗體驗證函數中使用它們。我正在使用Validity JS進行驗證。

這是我有:

<input type="text" name="name" value="" id="field_01" class=".require().minLength(5)" /> 

,並在JS功能:

var checks_to_apply = $("#field_01").attr("class").split(" "), 
i, l; 

var checks = ""; 

for (i = 0, l = checks_to_apply.length; i < l; i++) { 

     checks += checks_to_apply[i]; 
    } 
$("#field_01")+checks; 
... 
... 

這裏的正確的行爲是不尊重。

這是我從一個「檢查」警報獲得:

$("#field_01").require().minLength(5); 

.require().minLength(5) 

,但這種方式是不一樣的,直接在jQuery函數做像執行我錯在哪裏,我認爲該方法中的問題可能是因爲它將.require().minLength(5)視爲字符串,而不是要執行的jQuery代碼。

關於如何修復它的任何想法,請?

+1

'.require()的minLength(5)'是一個有效的類名?你可以使用'data'屬性。 – 2012-07-05 11:45:44

回答

0

因爲你是一個特定對象上執行這些功能,你需要創建整個論點作爲字符串並通過eval()函數執行:

var checks_to_apply = $("#field_01").attr("class").split(" "), 
i, 
l; 

var checks = "$('#field_01')"; 

for (i = 0, l = checks_to_apply.length; i < l; i++) { 
    checks += checks_to_apply[i]; 
} 
eval(checks); 

,但我會建議你使用一個不同的驗證插件,因爲您濫用類屬性:請檢查http://jquery.bassistance.de/validate/demo/以獲得更好更清晰的註釋。

+0

感謝您的意見,他們是實現我所需要的正確方法。 eval('$(「#field_01」)'+ checks); – ulimc 2012-07-05 12:49:51

0

最大的可能是你想要的東西,這樣的

這裏首先改變class="require minLength" minlengthdata="5"

var classes = $('#field_01').attr('class').split(" "); 
    var data = $('#field_01').attr('minlengthdata'); 

    for (i = 0, i < classes ; i++) { 
     if(classes[i] == 'require'){ 
    alert('its a requred field'); 
     } 
    if(classes[i] == 'minLength' && data > 0){ 
    alert('minimum value required'); 
     } 


    } 
+0

不幸的是我不能使用這種方法,因爲我有很多許多驗證類型,而且我使用了已經對它們進行檢查的有效性插件,我只需要從類屬性中調用正確的方法 – ulimc 2012-07-05 12:51:30

相關問題