使用/ jQuery在页面上定位特定表单

时间:2011-05-26 21:38:24

标签: jquery

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

假设我有 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()...

来完成

2 个答案:

答案 0 :(得分:1)

您的问题是“将其全部写入变量并在刷新后在页面上发回。”从字面上看,这听起来很奇怪,因为它不像JS变量在刷新页面后仍然存在,如果你真的使用整页刷新。

因此,如果这是你真正采用的方法,那么这可能就是你想要开始的地方:http://api.jquery.com/serialize/通常这就是你用来从表单中获取所有字段值以发送到服务器(例如,在ajax调用上)。

所以,你可能会做的是:

  • 序列化目标表单并将序列化字符串保存到cookie中,其中cookie以其存储的表单值的id命名
  • 在页面加载时,查找与您的Cookie名称匹配的元素,并填写Cookie值中的值。您可以在服务器或JavaScript中执行此操作。

答案 1 :(得分:0)

从您的示例代码中,您可以更好地使用serialize()。

在提交当前表单后检查以下内容的输出,看看它是否是你所追求的。

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