使Html表单输入字段在提交时保持不变

时间:2014-12-11 20:40:40

标签: javascript html forms

使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>

2 个答案:

答案 0 :(得分:1)

我只是简单地回答这个问题,因为我把它作为一个评论,认为可能会有更多......

关于$.ajax来电的成功,请移除$('#ball').val('')行,以便它不会发生变化。

基本上,val语句有两个目的。

  1. 作为.val("123"):这会将元素的值更改为123,即赋值。
  2. 作为.val():这将从元素中获取值而不更改它。
  3. 正如您所写,$('#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

Form serialize jquery api