我需要在提交表单之前获取表单文本字段的值(如果有的话)。
假设我有 A 表单并且用户输入了一些值,但随后点击页面上的其他链接并打开包含 B 形式的对话框。如果用户提交表格 B ,结果会在页面上发布并刷新,这就是我想要的,但它会从表格 A 。
我需要的是在提交表单 B 时通过表单A的表单字段循环运行并从表单 A 获取“非空”字段,以HTML的形式,将HTML插入刷新的页面,并将结果从 B 中发布。
说,我现在需要的是能够在单击 myLink 时将值输入到一个VAR中的HTML。
$('#myForm:input').each(function(){
var fieldWithValue = "";
if($(this).val() != "") {
$this = $(this);
fieldWithValue += $this.parent().html();
}
$("#vals").html(fieldWithValue);
})
<form id="myForm">
foreach ($arrays as $listValue) {
<div>
<input type="text" maxlength="100" name="field[]">
</div>
}
<div id="vals"></div>
</form>
<a href="#" id="myLink">link</a>
我认为这可以使用.html()...
来完成答案 0 :(得分:1)
您的问题是“将其全部写入变量并在刷新后在页面上发回。”从字面上看,这听起来很奇怪,因为它不像JS变量在刷新页面后仍然存在,如果你真的使用整页刷新。
因此,如果这是你真正采用的方法,那么这可能就是你想要开始的地方:http://api.jquery.com/serialize/通常这就是你用来从表单中获取所有字段值以发送到服务器(例如,在ajax调用上)。
所以,你可能会做的是:
答案 1 :(得分:0)
从您的示例代码中,您可以更好地使用serialize()。
在提交当前表单后检查以下内容的输出,看看它是否是你所追求的。
$('#myForm').submit(function() {
alert($(this).serialize());
});