2009-08-10 100 views
1

我有以下的Javascript exec()函數

$().ready(function() { 
    $("input[name^=totalRent_]").each(function() 
    { var input = $(this); 
     var name = input.attr('name'); 
     var num = /\d+$/.exec(name)[0]; 

我的HTML表單有:

<input type="text" name="totalRent_1" value="" /> <br /> 
    <input type="hidden" name="totalRent_1_hidden" /><br /> 
    <hr /> 
    <input type="text" name="totalRent_2" value="" /> <br /> 
    <input type="hidden" name="totalRent_2_hidden" /><br /> 
    <hr /> 
    <input type="text" name="totalRent_3" value="" /> <br /> 
    <input type="hidden" name="totalRent_3_hidden" /><br /> 
    <hr /> 

現在,我得到一個JavaScript錯誤說: /\d+$/.exec(name )爲空

每個函數附加到(「input [name^= totalRent_]」)。我需要做什麼,以便只附加到total_rent,而不是totalRent _..._隱藏?

在此先感謝。

回答

1

如果你只是想選擇的文本輸入,而不是隱藏的人,你改變你的選擇由multiple attributes(名稱和類型)進行過濾:

$('input[name^=totalRent_][type=text]') 

或者你也可以檢查元素的類型屬性上在每個回調函數:

$('input[name^=totalRent_]').each(function(){ 
    var input = $(this); 
    if (input.attr('type') == 'text'){ 
    var name = input.attr('name'); 
    var num = /\d+$/.exec(name)[0]; 
    } 
}); 
+0

哇,這就是皮條客 – CFNinja 2009-08-10 18:51:18

+0

$ .pimp(){function();} – zoltar 2015-11-17 06:07:30