2017-06-01 43 views
0

我读了很多类似的问题,我尝试了所有的解决方案,但似乎没有任何工作。我想通过点击一个按钮发送一个AJAX请求,并发送用户在textarea中键入的内容,并将其显示在div(chatbox)中。当我点击按钮时,没有任何反应。它从不调用具有AJAX代码的函数。你有什么想法发生了什么?呼叫AJAX发送按键的价值

P.S.我包含JavaScript文件,但没有任何更改。

<form action="ajax()"> 
 
    <textarea id="txtArea" name="txtArea" ></textarea> 
 
    <input type="submit" value="Submit" /> 
 
</form>
<script type="text/javascript"> 
 

 
//AJAX function 
 
function ajax() { 
 
    alert("insert"); 
 
    var txtArea = $("#txtArea").val(); 
 

 
    $.ajax({ 
 
     type: "POST", 
 
     url: "InsertMessage.php", 
 
     data: { 
 
      txtArea: txtArea 
 
     } 
 
     success: function(data) { 
 
      alert(data); 
 
      $("#chatbox").load("DisplayMessages.php") 
 
      $("#txtArea").val(""); //Insert chat log into the #chatbox div \t \t \t \t 
 
     } 
 
     error: function() { 
 
      alert('there was an error, write your error handling code here.'); 
 
     } 
 
    }); 
 
} 
 

 
$(document).ready(startAjax); 
 
//setInterval(function(){ 
 
// \t $("#chatbox").load("DisplayMessages.php"); \t \t 
 
//}//,1400); 
 
\t 
 
</script>

+1

我可能是错的,但我认为'action'是,如果你希望浏览器让你的要求,你有没有试图改变'<形式行动=“AJAX ()“>'to'

'? [W3Schools窗体](https://www.w3schools.com/html/html_forms.asp),[表单提交执行Javascript最佳实践?](https://stackoverflow.com/questions/8082846/form-submit-execute- javascript-best-practice) –

+0

是的,我尝试过但没有任何东西.. –

回答

1

action属性必须包含一个URL,而不是使用Javascript。您可以使用:

<form action="javascript:ajax()"> 

或:

<form onsubmit="ajax(); return false;"> 

,或者你可以在jQuery的事件绑定:

$(document).ready(function() { 
    $("form").submit(function() { 
     ajax(); 
     return false; 
    }); 
}); 
+0

这些变化后做的唯一的事情是超载的页面,但似乎仍然忽略功能 –

+0

如果你使用'onsubmit',你还需要'返回false ;'防止正常的表单提交。我已经更新了答案。 – Barmar

1

你的问题不是那么清楚,但是对于post方法发送数据当提交表单然后在div中显示结果时,请尝试如下所示:

html:

<form> 
     <textarea id="txtArea" name="txtArea" ></textarea> 
     <input type="submit"> 
    </form> 

    <div id="resultDiv"> 
    </div> 

JS:

$("form").submit(function(event) { 
    var txtArea = $("#txtArea").val(); 
    $.ajax({ 
       type:"POST", 
       url:"InsertMessage.php", 
       data:{txtArea:txtArea} 
       success: function(data){ 
        alert(data);       
        $("#resultDiv").html(data);   
       } 
       error: function(){ 
        alert('there was an error, write your error handling code here.'); 
       } 
     }); 
}); 
+0

谢谢你的回复,但没有什么改变......我打电话给php插入值写入用户,然后用这个“$(”#chatbox“)。load(”DisplayMessages.php“)\t \t \t \t \t \t \t $( “#txtArea”)VAL( “”); //插入聊天记录到#chatbox DIV \t“ 将dislay它在div ”客舱“ 但还是不调用函数..:/ –