在一种形式中,我需要忽略select / option下拉元素的serialization
,因为我需要将一个单独的事件挂接到它。由于整个表单都保存在开头,因此如何忽略某些元素,例如select / option下拉列表?
我试过了:$('#form').not('#signup,#idGarage').data('serialize',$('#form').serialize());
它没有作用。
这是代码:
<form>
.
.
.
<div class="input">
<label for="signup">Name</label>
<select id="signup" class="signup" name="signupId" data-placeholder="Select">
<option value="Cars">Cars</option>
<option value="Cars">Bikes</option>
<option value="Cars">Trucks</option>
</select>
<input type="hidden" name="signupId" id="idGarage" value="{$idGarage.id}">
<a href="" title="" class="send-garage-invite">Send</a>
</div>
.
.
.
</form>
$('#form').data('serialize',$('#form').serialize()); // On load save form current state
$(window).bind('beforeunload', function(e){
if($('#form').serialize()!=$('#form').data('serialize')){
return true;
}
else e=null; // i.e; if form state change show warning box, else don't show it.
});
最佳答案
您不必序列化整个表格。在选择器中,选择要序列化的元素。
$('form').data('serialize', $('form input:not([type="hidden"])').serialize());