Firefox不会发布表单元素值

Firefox doesn't post form Element Values

本文关键字:表单 元素 布表单 Firefox      更新时间:2023-09-26

我有一个非常简单的表单。cfm页面)。我通过AJAX在我的javascript文件提交的形式。该表单在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行。"什么好主意吗?

当你发布这个问题是StackOverflow邀请你看这个吗?

编辑从这里开始

如果你没有被邀请去看,你就没有被邀请。

得到6票的答案是,"document.getElementsByName()返回一个数组,所以你必须通过索引访问它:document.getElementsByName('staff_counter')[0](取决于你有多少个)。

您还可以访问length属性来检查匹配的元素数量。"

这对我来说是有意义的,因为你面对的是未定义变量的问题。

好了,伙计们,这是我解决这个问题的方法。

似乎当表单被Firefox处理时,由于我的<form>标签在<table>标签内,并且相应的结束标签(</form>)也在<table>标签内,导致HTML格式错误。在表格周围移动表单标记后,表单按预期工作。

感谢你们所有人试图帮助我解决这个很难弄清楚的问题,我为我最初的问题中的混乱道歉。

大卫