我有一个包含不同输入字段的表单:textarea,复选框,单选按钮,文本输入和选择输入。我正在使用jquery将其提交到数据库而不刷新完美的页面。但问题是jquery在提交后不会清除字段中的内容。仍然选中复选框和单选按钮。我在这个网站上做的研究表明,这个问题将通过使用jQuery的每个功能来解决。我做到了,但它没有用。请问在我的代码中我做错了什么。我的jquery代码如下所示。
Jquery的
$("#sub").click( function() {
var content = tinyMCE.activeEditor.getContent();
$('textarea[name=texteditor]').val(content);
$.post( $("#myform").attr("action"), $("#myform").serialize(), function(info){ $("#result").html(info); } );
clearInput();
});
$("#myform").submit( function() {
return false;
});
function clearInput() {
$("#input").each( function() {
$(this).val('');
});
}
答案 0 :(得分:0)
您可以使用以下方式重置表单:
$("#myform")[0].reset();
OR
$('#myform').each(function(){
this.reset();
});
$('button').click(function(){
$('#myform').each(function(){
this.reset();
})});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform">
<input type="text" />
<input type="text" />
</form>
<button type="button">Clear</button>
答案 1 :(得分:0)
可能有更好的方法,但我过去只使用过$('。foo')。val('')
它将清除单个输入,因此您可以使用forEach迭代所有表单输入。
答案 2 :(得分:0)
在您的代码中,您尝试清除文本字段,而不是表单重置。你的代码$(this).val(&#39;&#39;);只能用于文本框。
对于Radio或复选框,您需要设置this.checked = false; 或者在JQuery $(this).prop(&#39; checked&#39;,false);
完成表单重置可以通过
实现的document.getElementById(&#34; myForm的&#34)。复位();
答案 3 :(得分:0)
你的代码错了,你可以迭代id
function clearInput() {
$("#input").each( function() {
$(this).val('');
});
}
在这里你可以使用soluiton
function clearInput() {
$("#myform input").each(function() {
$(this).val('');
});
}
以下是一个示例解决方案https://jsfiddle.net/tpLexsz1/1/
$('button').click(function(){
$("#myform input").each(function() {
$(this).val('');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform">
<input type="text" />
<input type="text" />
</form>
<button>
Clear
</button>
希望这会对你有所帮助。