使Html表单输入字段在提交时保持不变。 当我提交表单时,球和表单的表单输入将重置为空。
现在我想要的是当我提交表单时,球的输入选择字段中的值仍然未设置,而注释字段值将重置 照常。以下任何帮助都是工作代码
$('body').on("click",".addComment",function(){
var element = $(this);
var id = element.attr("id");
$('#commentBox'+id).slideToggle(200);
$('#comment'+id).focus();
$('#comment'+id).val('');
$('#comment'+id).attr("placeholder", "Write a message..");
});
$('body').on("click",".comBtn",function(){
var element = $(this);
var cid = element.attr("id");
var ball=$('#ball').val();
var comment=$('#comment').val();
var datasend = 'com='+ comment + '&pid=' + cid +'&ball='+ball;
if(comment==""){
$('#comment'+cid).focus();
$('#comment'+cid).attr("placeholder", "Enter the comment..");
}else{
$.ajax({
type:"POST",
url:"comment.php",
data:datasend,
cache:false,
success:function(html){
$('#loadcomment'+cid).append(html);
$('#comment').val('');
$('#ball').val('');
}
});
}
return false;
});
<form action="" method="post">
<select name="ball" id="ball">
<option>none</option>
<option value="left">left</option>
<option value="right">right</option>
</select>
<input name="comment" id="comment" type="text">
<input id="comBtn" type="submit"/>
</form>
答案 0 :(得分:1)
我只是简单地回答这个问题,因为我把它作为一个评论,认为可能会有更多......
关于$.ajax
来电的成功,请移除$('#ball').val('')
行,以便它不会发生变化。
基本上,val
语句有两个目的。
.val("123")
:这会将元素的值更改为123,即赋值。.val()
:这将从元素中获取值而不更改它。正如您所写,$('#ball').val('')
代码将球的值重置为空字符串。
答案 1 :(得分:0)
对此的简短回答是: 您可以使用$(&#39;#ball&#39;)重置选择下拉列表.val(0);
我可以在代码中看到一些问题,首先你需要用
包装整个块 $(function() {
// your code goes here
});
第二件事是通过添加必要的属性来利用HTML5,例如required =&#34; required&#34;和输入上的placholder以及在表单上添加novalidate,如下所示:
<form method="post" novalidate>
<input type="text"
required="required"
placeholder="Your placeholder goes here"/>
使用e.preventDefault();防止提交表单导致您使用ajax发布并仅使用提交事件
$('form').on("submit", function(e) {
e.preventDefault();
// your other functions
});
将操作放在form属性而不是js变量上,html管理起来更便宜。
<form action="comment.php">
然后在js url:$(&#39; form&#39;)。attr(&#39; action&#39;), 当然最好将它保存在变量中然后传递它,但这只是一个例子
使用$(&#39; form&#39;)。serialize();而不是构建自己的数据
`data:datasend, // bad
`data: $('form').serialize() // good