1

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

4

2 回答 2

1

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

编辑从这里开始

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

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

您还可以访问一个length属性来检查匹配了多少元素。”

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

于 2013-01-10T02:21:22.943 回答
0

好的,伙计们,这就是我为解决此问题所做的工作。

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

感谢大家试图帮助我解决这个难以解决的问题,对于我最初的问题中的困惑,我深表歉意。

大卫

于 2013-01-11T02:03:01.620 回答