Firefox不发布表单元素值

时间:2013-01-10 01:18:52

标签: javascript forms firefox coldfusion submit

我有一个非常简单的表单(.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行出错。”有任何想法吗?

2 个答案:

答案 0 :(得分:1)

当您发布问题时,StackOverflow是否邀请您查看this

编辑从此处开始

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

获得6票的答案是,“document.getElementsByName()返回一个数组,因此您必须通过索引访问它:document.getElementsByName('staff_counter')[0](取决于您拥有的数量)。

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

鉴于您遇到了未定义的变量问题,这对我来说很有意义。

答案 1 :(得分:0)

好的家伙就是我为解决这个问题所做的工作。

似乎在Firefox处理表单时,我的<form>标记位于<table>标记内,而且相应的结束标记(</form>)也在<table>标记。在表格周围移动表单标签后,表单按预期工作。

谢谢大家帮我解决这个难以理解的问题,并为我最初的问题中的混淆道歉。

大卫