the*_*ter 3 javascript jquery jquery-plugins jquery-forms-plugin
继我之前的问题之后,Meder很快就回答了这个问题,这并不好笑,现在在提交可重用的 jQuery 表单的过程中弹出了一个额外的问题,该表单不会使用户离开他们所在的位置。
问题
jQueryserialize()函数在页面内的所有表单上发挥其魔力,而不是在提交的特定表单上。下面的示例代码。
如何捕获表单的唯一名称/ID,并将其替换"form"为$("form").serialize()目标表单的名称,以便仅将其序列化?
表格代码
<form name="contact" id="contact" action="">
<input name="_recipients" type="hidden" value="joe@fake.com" />
<input name="_subject" type="hidden" value="Title" />
...
<fieldset>
<label for="name" id="name_label">Name</label>
<input type="text" name="name" id="name" size="30" value="" class="text-input" />
<label class="error" for="name" id="name_error">This field is required.</label><br />
<label for="email" id="email_label">Return Email</label>
<input type="text" name="email" id="email" size="30" value="" class="text-input" />
<label class="error" for="email" id="email_error">This field is required.</label><br />
<label for="phone" id="phone_label">Return Phone</label>
<input type="text" name="phone" id="phone" size="30" value="" class="text-input" />
<label class="error" for="phone" id="phone_error">This field is required.</label><br/>
<br />
<input type="submit" name="submit" class="button" id="submit_btn" value="Send your suggestion" />
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
jQuery 序列化和发布
var dataString = $("form").serialize();
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "/_global/assets/scripts/formmail/formmail.asp",
data: dataString,
...
Run Code Online (Sandbox Code Playgroud)
var dataString = $('#contact').serialize()
Run Code Online (Sandbox Code Playgroud)
如果您将事件处理程序附加到按钮或表单的submit事件,那么您可以在事件处理程序函数范围内使用thisif引用它submit,例如
$('#contact').submit(function() {
alert( $(this).serialize() );
});
Run Code Online (Sandbox Code Playgroud)
我强烈建议阅读http://docs.jquery.com/Selectors