在带有jQuery的页面上以特定表单为目标

在带有jQuery的页面上以特定表单为目标,jquery,Jquery,在提交表单之前,我需要获取表单文本字段的值(如果有) 假设我有一个表单A,用户输入一些值,然后单击页面上的其他链接,打开一个包含表单B的对话框。如果用户提交表单B,结果将发布在页面上并刷新它,这正是我想要的,但它将丢失表单A字段中的所有值 我需要的是在提交表单B时通过表单a的表单字段运行一个循环,从表单a以HTML的形式获取“非空”字段,并将该HTML与表单B发布的结果一起插入刷新页面 也就是说,我现在需要的是能够在单击myLink时,将值输入到一个变量中的HTML $('#myForm:inp

在提交表单之前,我需要获取表单文本字段的值(如果有)

假设我有一个表单A,用户输入一些值,然后单击页面上的其他链接,打开一个包含表单B的对话框。如果用户提交表单B,结果将发布在页面上并刷新它,这正是我想要的,但它将丢失表单A字段中的所有值

我需要的是在提交表单B时通过表单a的表单字段运行一个循环,从表单a以HTML的形式获取“非空”字段,并将该HTML与表单B发布的结果一起插入刷新页面

也就是说,我现在需要的是能够在单击myLink时,将值输入到一个变量中的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>
$('#myForm:input')。每个(函数(){
var fieldWithValue=“”;
if($(this.val()!=“”){
$this=$(this);
fieldWithValue+=$this.parent().html();
}
$(“#vals”).html(fieldWithValue);
})
foreach($listValue形式的数组){
}
我认为这可以通过使用.html()来实现。

您的问题是“将所有内容写入一个变量,并在刷新后在页面上发回”。从字面上看,这听起来很奇怪,因为如果您真的使用整页刷新,刷新页面后JS变量不会持续存在

因此,如果这是您真正采取的方法,那么这可能是您想要开始的地方:通常,这是您从表单中获取所有字段值以发送到服务器的方法(例如,在ajax调用中)

所以,你可以做的是:

  • 序列化目标表单并将序列化的字符串保存到cookie中,cookie以其存储的表单值的id命名
  • 在页面加载时,查找与cookie名称匹配的元素,并填写cookie值中的值。您可以在服务器上或在JavaScript中执行此操作
从您的示例代码中,您最好使用以下内容)

提交当前表单后,请检查以下内容的输出,并查看它是否是您想要的

$('#myForm').submit(function() {
  alert($(this).serialize());
});

我建议更新您的问题,以便更好地定义您的需求。