JS / AJAX自动提交表单:禁用回车键以防止页面刷新

时间:2012-07-17 04:22:23

标签: javascript jquery

我正在使用一个将使用ajax提交的功能,而无需点击按钮。但我目前正在经历两个问题,经过反复试验没有找到合理的解决方案:

首先,有什么方法可以禁用输入按钮点击(这会导致整个页面刷新)?

JSFIDDLE JS函数的基本示例

其次,感觉就像我要以迂回的方式显示已发布的内容。如何更改函数$('#special').html('<p>' + $('#resultval', result).html() + '</p>');的这一部分,使其仅在名为#special的div中进行POST,而不需要span or <p> #resultval

每次我通过php回显我必须像这样设置它来显示结果:<div id="special"><span id="resultval">This is the result.</span></div>

<script>
    $(document).ready(function() {
     var timer = null; 
     var dataString;   
     function submitForm(){
       $.ajax({ type: "POST",
                url: "posting.php",
                data: dataString,
                success: function(result){

                   $('#special').html('<p>' +  $('#resultval', result).html() + '</p>');

                }

       });
       return false;
     }
     $('#ytinput').on('keyup', function() {
        clearTimeout(timer);
        timer = setTimeout(submitForm, 050);
        var name = $("#ytinput").val();
        dataString = 'name='+ name;
     });
     }); 

</script>

1 个答案:

答案 0 :(得分:1)

$(document).ready(function() {
 var timer = null; 
 var dataString;   
 function submitForm(event){// the function call on click or on submit onclick=submitForm(event);

    event.preventDefault(); //to prevent enter key
   $.ajax({ type: "POST",
            url: "posting.php",
            data: dataString,
            success: function(result){

               $('#special').text(result); //you can use text() or html() only

            }

   });
   return false;
 }
 $('#ytinput').on('keyup', function() {
    clearTimeout(timer);
    timer = setTimeout(submitForm, 050);
    var name = $("#ytinput").val();
    dataString = 'name='+ name;
 });
 });