我有一个非常简单的表单(.cfm页面)。我在我的javascript文件中通过AJAX提交表单。该表单在IE,Safari和Chrome中运行良好,但在FF(v18.0)中不起作用。
这是我的表格:
<form name="LoginForm">
<input class="newstext" type="text" name="userLogin" id="userLogin">
<input class="newstext" type="password" name="passLogin" id="passLogin">
<input type="button" name="login" value=" Login " onClick="validateLogin();">
</form>
Javascript代码:
function validateLogin() {
if (document.getElementById('userLogin').value == '') {
alert('Please enter your username');
document.getElementById('userLogin').style.backgroundColor='yellow';
document.getElementById('userLogin').focus();
return false;
}
if (document.getElementById('passLogin').value == '') {
alert('Please enter your password');
document.getElementById('passLogin').style.backgroundColor='yellow';
document.getElementById('passLogin').focus();
return false;
}
ColdFusion.Ajax.submitForm("LoginForm", "loginForm_action.cfm", submitLoginCallback, submitLoginerrorHandler);
return true;
}
当我尝试登录时,表单元素值未被传递。因此当它到达cfc时,cfc说“元素USERLOGIN在FORM中未定义。
第9行出错。”有任何想法吗?
答案 0 :(得分:1)
当您发布问题时,StackOverflow是否邀请您查看this?
编辑从此处开始
如果你没有被邀请去看,你就不是。
获得6票的答案是,“document.getElementsByName()
返回一个数组,因此您必须通过索引访问它:document.getElementsByName('staff_counter')[0]
(取决于您拥有的数量)。
您还可以访问length
属性以检查匹配的元素数量。“
鉴于您遇到了未定义的变量问题,这对我来说很有意义。
答案 1 :(得分:0)
好的家伙就是我为解决这个问题所做的工作。
似乎在Firefox处理表单时,我的<form>
标记位于<table>
标记内,而且相应的结束标记(</form>
)也在<table>
标记。在表格周围移动表单标签后,表单按预期工作。
谢谢大家帮我解决这个难以理解的问题,并为我最初的问题中的混淆道歉。
大卫