我有HTML表单,数据发送到本地PHPscript,并通过jQuery发送到远程php。问题是我无法将数据发送到远程PHP,为此,我尝试使用jQuery Ajax。
html代码:
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<script type="text/javascript" src='jquery.js'></script>
<script type="text/javascript" src='e.js'></script>
<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field</span></p>
<form method="post" id="registration" action="function.php">
Name: <input type="text" id="nameq" name="name" value="">
<span class="error">* </span>
<br><br>
E-mail: <input type="text" id="email" name="email" value="">
<span class="error">* </span>
<br><br>
Website: <input type="text" id="website" name="website" value="">
<br><br>
Comment: <textarea id="comment" name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" id="gender" name="gender" value="female">Female
<input type="radio" id="gender" name="gender" value="male">Male
<input type="radio" id="gender" name="gender" value="other">Other
<span class="error">* </span>
<br><br>
<button id="button" type="submit" form="registration">Submit</button>
</form>
</html>
e.js:
$(document).ready(function() {
$("#button").click(function() {
var cln = $("#nameq").val();
$.post("https://test/index.php", {"cln": cln});
});
});
$("#button").click(function()
Mozilla Firefox 68显示“ NS_BINDING_ABORTED”,Chrome 76无法发送$("#button").submit(function()
Mozilla Firefox不显示任何内容,无法发送,Chrome无法发送$.ajaxSetup({async: false})
,两种浏览器都可以正常运行,但我不想使用它我在做什么错,仅更改e.js有解决方案吗?谢谢
答案 0 :(得分:0)
欢迎来到Stackoverflow!
在您的情况下,发生的情况是<button type="submit">
在调用click事件之前提交了表单。每当提交表单时,您将需要使用jQuery submit事件来触发该事件
$( document ).ready(function() {
$("#registration").submit(function( event ) {
event.preventDefault();
var url = $(this).attr('action');
var cln = $("#nameq").val();
$.post(url, {"cln": cln});
});
});
在这里,关键是方法调用event.preventDefault()
。
引用文档
jQuery的Submit事件在实际提交之前触发,因此我们可以 通过对此事件对象的调用取消提交事件。
答案 1 :(得分:0)
很抱歉,我的问题不清楚,但我认为存在误解。我的目标是我希望在本地php脚本-function.php和远程php-https://test/index.php中接收数据。现在:
$(document).ready(function() {
$("#registration").submit(function(event) {
event.preventDefault();
var cln = $("#nameq").val();
$.post("https://test/index.php", {"cln": cln});
});
});
我可以在远程php脚本中接收数据,但随后数据不会发送到本地php-function.php。使用$ .ajaxSetup({async:false}):
$(document).ready(function() {
$("#button").click(function() {
var cln = $("#nameq").val();
$.ajaxSetup({async: false});
$.post("https://test/index.php", {"cln": cln});
});
});
有延迟(我的网站正在等待来自远程php脚本的答复),我不喜欢它。我想同时将数据发送到本地和远程php脚本