Javascript 在包含多个表单的页面中验证JS中的表单元素
JS正确打印传入的表单名称,但在验证表单元素时,我会收到下面的错误消息。表单名称在循环中动态生成 谢谢 错误Javascript 在包含多个表单的页面中验证JS中的表单元素,javascript,html,Javascript,Html,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 f
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>
不应该:
var bg_name = (document.form_name.bg_name.value).replace(/ /gi, "");
是:
您可以打印form\u name
变量,但稍后您可以使用另一个对象document.form\u name
。
使用后面的,或者在分配bg\u名称时,使用文档
:
document.form_name = 'form_bottom_update_' + form_id;
您在html中的任何地方都没有使用form_id,因此如何在javascript中调用它来解决此问题。表单名称保持不变,文本名称变为动态
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>
函数验证更新(表单id)
{
变量元素名称='bg\U名称\'+表单id;
var bg_name=(document.getElementsByName(element_name)[0].value).replace(//gi,“”);
如果(bg_name=='')
{
警报(“输入名称”);
返回false;
}
返回true;
}
getError:TypeError:form\u name.bg\u name未定义var bg\u name=(form\u name.bg\u name.value)的
for代码>获取错误:类型错误:document.form\u name.bg\u name未定义document.form\u name='form\u bottom\u update\u'+form\u id有人知道解决方案吗?你看到这些部分了吗?HTML:onsubmit=“return validate_update(3);”
和JS函数validate_update(form_id)
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>