我正在尝试执行“干净”提交,即从表单字段中删除所有隐藏的div后调用的提交。
由于这是我将更频繁使用的功能,因此我将代码转移到了扩展部分:
$.fn.extend({
bindCleanSubmit: function() {
$(this).submit( function(event) {
event.preventDefault();
$(this).find("div:hidden").remove();
console.log("trying to commit...");
return true;
});
}
});
现在,删除了所有div,触发了控制台事件,但最后提交尚未执行。
你现在问题在这吗?
答案 0 :(得分:2)
我不确定您要对preventDefault()
做什么,但如果您从bindCleanSubmit()
删除它,隐藏的div将从表单中删除,并且会正常提交。所以给出以下html:
<form id="myform" method="POST" action="/">
<input type="text" name="displayedInput" value="1"/>
<div style="display: none">
<input type="text" name="hiddenInput" value="1"/>
</div>
<button type="submit">Submit</button>
</form>
...和更新的插件:
$.fn.extend({
bindCleanSubmit: function() {
$(this).submit( function(event) {
$(this).find("div:hidden").remove();
console.log("trying to commit...");
return true;
});
}
});
$('#myform').bindCleanSubmit();
...提交displayedInput
时,只有myform
值会提交给服务器。