2013-07-12 34 views
-1

JS正確地打印傳入表單名稱,但是在驗證表單元素時我收到了以下錯誤消息。表格名稱是在循環中動態生成的。驗證JS中的表單元素有很多形式的頁面

感謝

錯誤

TypeError: document.form_name is undefined 

JS

function validate_update(form_id) 
{ 
    var form_name = 'form_bottom_update_' + form_id; 
    //alert (form_name); //Prints form name correctly as form_1, form_2, form_3 

    var bg_name = (document.form_name.bg_name.value).replace(/ /gi, ""); 

    if (bg_name == '') 
    { 
     alert('Enter a Name'); 
     return false; 
    } 

    return true; 
} 

HTML

<form name="form_1" action="update.php" method="POST" onsubmit="return validate_update(1);"> 
    <input type="text" name="bg_name" value="" /> 
    <input type="submit" name="submit" value="Update" /> 
</form> 

<form name="form_2" action="update.php" method="POST" onsubmit="return validate_update(2);"> 
    <input type="text" name="bg_name" value="" /> 
    <input type="submit" name="submit" value="Update" /> 
</form> 

<form name="form_3" action="update.php" method="POST" onsubmit="return validate_update(3);"> 
    <input type="text" name="bg_name" value="" /> 
    <input type="submit" name="submit" value="Update" /> 
</form> 
+0

任何人都知道解決方案? – BentCoder

回答

0

變化的方法來解決問題。表格名稱保持不變,文本名稱變爲動態。

function validate_update(form_id) 
{ 
    var element_name = 'bg_name_' + form_id; 

    var bg_name = (document.getElementsByName(element_name)[0].value).replace(/ /gi, ""); 

    if (bg_name == '') 
    { 
     alert('Enter a Name'); 
     return false; 
    } 

    return true; 
} 

<form name="form" action="update.php" method="POST" onsubmit="return validate_update(2);"> 
    <input type="text" name="bg_name_2" value="" /> 
    <input type="submit" name="submit" value="Update" /> 
</form> 
1

Shoudn't說:

var bg_name = (document.form_name.bg_name.value).replace(/ /gi, ""); 

是:

var bg_name = (form_name.bg_name.value).replace(/ /gi, ""); 

您打印form_name變量,但後來你用document.form_name這是一個不同的對象。 要麼使用後,或分配bg_name時,使用document

document.form_name = 'form_bottom_update_' + form_id; 
+0

獲取'錯誤:類型錯誤:form_name.bg_name未定義''var bg_name =(form_name.bg_name.value).replace(//gi,「」);' – BentCoder

+0

獲取錯誤:TypeError:document.form_name.bg_name is未定義'for document.form_name ='form_bottom_update_'+ form_id;' – BentCoder

-2

你還沒有使用form_id隨時隨地在你的HTML,你怎麼可能把它在JavaScript

+0

您是否看到這些部分? HTML:'onsubmit =「return validate_update(3);''和JS'function validate_update(form_id)' – BentCoder