Firefox不会发布表单元素值
Firefox doesn't post form Element Values
我有一个非常简单的表单。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格式错误。在表格周围移动表单标记后,表单按预期工作。
感谢你们所有人试图帮助我解决这个很难弄清楚的问题,我为我最初的问题中的混乱道歉。
大卫相关文章:
- Javascript更新孙窗口中的表单元素
- 阻止表单元素提交
- 使用带有.net autopostback的ryanfait.com自定义表单元素
- 使用javascript更改表单元素的ID值
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 为什么表单元素不应命名为submit
- 如何重置搜索表单中的特定表单元素
- 使用 ng-repeat访问 ng 表单元素/值
- 获取电子邮件附件的表单元素
- AJAX和php脚本后添加的表单元素未传输到$_POST
- 如何对未知表单元素进行表单验证
- 不显示为表单元素的图像输入按钮的动态创建和appendChild
- 在JavaScript中为表单元素生成键值对
- 表单元素上的jQuery focusout事件即使在单击子元素时也会被触发
- 如何在 OnKeyPress 事件后获取输入表单元素的值
- 表单元素值更改后的角度 JS 验证
- 使用 javascript 中的表单元素构建一个 xml 字符串
- 如何以角度访问表单元素的$valid
- 如果选择了多个选项,则使用 jQuery 显示隐藏的表单元素
- JSON 填充的表单元素不使用 angularJs 过滤器进行过滤