如何验证面框中的表单字段
How to validate form fields in a facebox?
我需要验证面框中显示的表单字段。
问题是我无法使用 javascript 获取字段的值。
例如:document.form.field_name.value 不返回其值。
代码示例:
<script type="text/javascript">
function validate()
{
if (document.form1.field.value=='')
{
alert ("Field cannot be left blank");
}
}
</script>
<form name="form1" onsubmit="return validate()">
<input type="text" name="field" />
</form>
执行此操作的一种方法是将值直接从表单传递到验证代码。
<form name="form" id="form" onsubmit="return validate(this.field.value)">
<input type="text" id="field" />
</form>
或者,您甚至可以使用没有表单的文本框,方法是:
<input type="text" id="field"
onkeydown="if (event.keyCode == 13) return validate(this.value)" />
更新脚本以允许使用新的值参数:
<script type="text/javascript">
function validate(val) {
if (val.length < 1)
{
alert ("field cannot be left blank");
return false; //to stop the default action of submitting the form
} else {
alert ("Value: "+val);
return true; //allow to submit the page
}
}
</script>
这实际上是一个非常容易和简单的验证,但不要忘记根据您是否希望系统继续提交来设置返回操作。
我不确定您是从哪里提取页面的,是从远程 html 地址还是本地存储的div。 所以我不确定为什么您从 DOM 中提取值的解决方案不起作用。 我通常使用 jquery 从面框窗口中的不同字段获取和设置值没有问题。
注意:您必须小心放置脚本的位置。 这取决于您的应用程序,但有时您可能希望将脚本放在根文档中而不是面框页面中,因为如果您加载远程面框div,则范围会发生变化,并且当脚本嵌入到远程面框div 中时,可能需要引用 parent.document 来访问父字段。
Facebox 复制显示的 DOM 块,有效地创建具有重复 id 的元素。这是 HTML 标准不允许的。你的 JavaScript 疯狂地寻找一个由其 id 唯一标识的元素,但它找到了其中的 2 个......
这是Facebox中的一个巨大错误。面框中的任何代码都不应具有 ID。当面框显示时,您的所有绑定都应更新。
相关文章:
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 验证PDF表单中的字段
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 表单输入字段随着溢出的文本而增长
- 如何将onChange方法添加到ExtJS 4表单中的所有字段(textField)中
- 尝试使用名称访问表中字段的日期选取器时出现问题
- Javascript 表单 - 字段不是必需的
- 单击按钮时更改数据库表的字段值
- 数据表将字段值关联到按钮,而 ajax 填充表
- 返回数据表输入字段
- 更改附加表行字段jQuery的名称
- Angularjs表单/字段验证使用JavaScript函数,无需指令
- 仅在Firefox中,表脱离字段集边界
- 如何在表单提交后使用JQuery从附加到HTML表的字段中获取$_POST数组中的值
- 什么's提交表单后,从post数组中动态附加的表行字段中获取值的问题