Javascript 为什么此表单不过帐数据?
我有以下表格在数据库中发布消息。然而,每当我按下输入按钮,它就会冻结,什么也没发生。似乎找不到确切的问题。尝试将PHP更改为Javascript 为什么此表单不过帐数据?,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我有以下表格在数据库中发布消息。然而,每当我按下输入按钮,它就会冻结,什么也没发生。似乎找不到确切的问题。尝试将PHP更改为if(isset($\u POST['submit']),提交按钮工作正常,因此我认为这可能是“textarea”设置的问题。有人知道我哪里出了问题吗 HTML: 尝试替换下面的行 <form action="javascript:sendPM();" name="pmForm" id="pmForm" method="post"> 到 如果它不起作用,请告
if(isset($\u POST['submit'])
,提交按钮工作正常,因此我认为这可能是“textarea”设置的问题。有人知道我哪里出了问题吗
HTML:
尝试替换下面的行
<form action="javascript:sendPM();" name="pmForm" id="pmForm" method="post">
到
如果它不起作用,请告诉我。谢谢将您的js代码更改为该代码:
$('#pmForm').submit(function(e){
// prevent default event handler
e.preventDefault();
// disable input
$('input[type=submit]', this).attr('disabled','disabled');
// call your function
sendPM()
});
然后可以将表单的action属性设置为空。只是:
<form action="" name="pmForm" id="pmForm">
如果您在js中自己创造了所有的魔力,那么实际上并不需要这些属性
但是,如果您想支持没有javascript的浏览器,那么应该根据API URL添加“action”和“method”属性。因此,如果用户的浏览器支持JS,那么所有这些属性都将被忽略,但对于其他人来说,您的表单将以本地方式工作。尝试下面的代码片段。在我的机器里工作得很好。希望它能起作用
$(document).on('submit','#pmForm',function() {
$('input[type=submit]', this).attr('disabled','disabled');
var pmTextArea = $("#pmTextArea");
var sendName = $("#pm_send_name");
var sendID = $("#pm_send_id");
var receiveName = $("#pm_receive_name");
var receiveID = $("#pm_receive_id");
var timesent = $("#pm_timesent");
var url = "messages.php";
if (pmTextArea.val() == "") {
$("#interaction").html('Comment field is empty.').show().fadeOut(5000);
}
else {
var data = { message: pmTextArea.val(), sendername: sendName.val(), senderid: sendID.val(), recname: receiveName.val(), recID: receiveID.val(), time: timesent.val() };
$.post(url,data, function(data){
$("#interaction").html('Message sent successfully.').show().fadeOut(5000);
document.pmForm.pmTextArea.value='';
});
}
});
首先,您不需要从表单标记调用js:
<form action="javascript:sendPM();" name="pmForm" id="pmForm" method="post">
您不需要定义的函数。还要注意e.preventDefault,它阻止表单执行默认提交操作 删除action=“javascript:sendPM();”
并在$('#pmForm')中执行所需操作。改为提交(函数(e){/…您的代码})
回调。只是别忘了添加e.preventDefault()代码>在回调中停止正常形式的行为。我想指出几点。(i) 表单
标记
的操作
属性应该是您要向其提交数据的URL。默认情况下,如果缺少此属性,则默认为当前URL。如果希望在提交时调用JavaScript函数,可以将其作为提交事件的回调调用action=“javascript:sendPM();”
不是它的合适位置。(ii)检查if(isset($\u POST['submit'])
实际上是验证服务器端页面提交(PHP)是否有帮助的更好方法?将if(isset($\u POST['message']){替换为if($\u server['REQUEST\u METHOD']==“POST”){请在firefox浏览器中打开页面,按ctrl\u shift+q并转到网络选项卡。在该选项卡下方,您可以找到xhr选项卡。点击提交按钮,如果任何xhr请求被触发,请告诉我。您尝试过吗?您也可以在chrome浏览器中进行同样的操作。这个怎么样?
$('#pmForm').submit(function(){$('input[type=submit]', this).attr('disabled','disabled');});
function sendPM(){
var pmTextArea = $("#pmTextArea");
var sendName = $("#pm_send_name");
var sendID = $("#pm_send_id");
var receiveName = $("#pm_receive_name");
var receiveID = $("#pm_receive_id");
var timesent = $("#pm_timesent");
var url = "messages.php";
if (pmTextArea.val() == ""){
$("#interaction").html('Comment field is empty.').show().fadeOut(5000);
}
else {
$.post(url,{ message: pmTextArea.val(), sendername: sendName.val(), senderid: sendID.val(), recname: receiveName.val(), recID: receiveID.val(), time: timesent.val() }, function(data){
$("#interaction").html('Message sent successfully.').show().fadeOut(5000);
document.pmForm.pmTextArea.value='';
});
}
}
$(document).on('submit','#pmForm',function() {
$('input[type=submit]', this).attr('disabled','disabled');
var pmTextArea = $("#pmTextArea");
var sendName = $("#pm_send_name");
var sendID = $("#pm_send_id");
var receiveName = $("#pm_receive_name");
var receiveID = $("#pm_receive_id");
var timesent = $("#pm_timesent");
var url = "messages.php";
if (pmTextArea.val() == "") {
$("#interaction").html('Comment field is empty.').show().fadeOut(5000);
}
else {
var data = { message: pmTextArea.val(), sendername: sendName.val(), senderid: sendID.val(), recname: receiveName.val(), recID: receiveID.val(), time: timesent.val() };
$.post(url,data, function(data){
$("#interaction").html('Message sent successfully.').show().fadeOut(5000);
document.pmForm.pmTextArea.value='';
});
}
});
$('#pmForm').submit(function(e){
// prevent default event handler
e.preventDefault();
// disable input
$('input[type=submit]', this).attr('disabled','disabled');
// call your function
sendPM()
});
<form action="" name="pmForm" id="pmForm">
$(document).on('submit','#pmForm',function() {
$('input[type=submit]', this).attr('disabled','disabled');
var pmTextArea = $("#pmTextArea");
var sendName = $("#pm_send_name");
var sendID = $("#pm_send_id");
var receiveName = $("#pm_receive_name");
var receiveID = $("#pm_receive_id");
var timesent = $("#pm_timesent");
var url = "messages.php";
if (pmTextArea.val() == "") {
$("#interaction").html('Comment field is empty.').show().fadeOut(5000);
}
else {
var data = { message: pmTextArea.val(), sendername: sendName.val(), senderid: sendID.val(), recname: receiveName.val(), recID: receiveID.val(), time: timesent.val() };
$.post(url,data, function(data){
$("#interaction").html('Message sent successfully.').show().fadeOut(5000);
document.pmForm.pmTextArea.value='';
});
}
});
<form action="javascript:sendPM();" name="pmForm" id="pmForm" method="post">
<form name="pmForm" id="pmForm" method="post">
$('input[type=submit]').click(function(e){
e.preventDefault();
$(this).attr('disabled','disabled');
var pmTextArea = $("#pmTextArea");
var sendName = $("#pm_send_name");
var sendID = $("#pm_send_id");
var receiveName = $("#pm_receive_name");
var receiveID = $("#pm_receive_id");
var timesent = $("#pm_timesent");
var url = "messages.php";
if (pmTextArea.val() == ""){
$("#interaction").html('Comment field is empty.').show().fadeOut(5000);
}
else {
$.post(url,{ message: pmTextArea.val(), sendername: sendName.val(), senderid: sendID.val(), recname: receiveName.val(), recID: receiveID.val(), time: timesent.val() }, function(data){
$("#interaction").html('Message sent successfully.').show().fadeOut(5000);
document.pmForm.pmTextArea.value='';
});
}
});