2

我正在使用 Ajax 和 jQuery 来获取提交按钮的单击事件的输出

我有两个文件

  1. Index.php(包含 jQuery 和 Ajax 代码)
  2. actionfile.php(一个php文件,将Ajax代码发送过来的数据提取出来Index.php,保存在一个文件中)

索引.php:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>

</head>
<body>

<form name="myform" method="post">
<input type="text" name="txt1" id="txt1" value="121212"/>
<input type="submit" value="submit" id="submit" name="submit" />
</form>

<script> 
$("#submit").click(function() {
    var txt =document.getElementById('txt1').value;  //textbox value
    alert(txt);
    var txt1 = "txt1="+txt;
    alert(txt1);
    $.ajax({
            type: "POST",
            url: "actionfile.php",
            data:txt1,
            success: function() {
               alert("success");
            }
        });
    });
</script>
</body>

</html>

和actionfile.php:

<?php
    error_reporting(E_ALL);
    $map=$_POST['txt1'];
    $fp=fopen("file.txt","w");
    fwrite($fp,$map);
    fclose($fp);
?>

问题是,如果我删除这段代码$("#submit").click(function()ajax 工作正常,这意味着它在页面加载时提交数据(假设我在文本框中提供默认值)。当我保持代码$("#submit").click(function()完整时,仅在按下提交按钮时调用该函数,但在这种情况下 AJAX 失败。

该代码可在http://www.code.guru99.com/kishore上获得

是什么导致了这个问题?

4

4 回答 4

1

尝试这个:

    $("form").submit(function(e){
        e.preventDefault();

        var txt =document.getElementById('txt1').value;  //textbox value
        alert(txt);
        var txt1 = "txt1="+txt;
        alert(txt1);
        $.ajax({
                type: "POST",
                url: "actionfile.php",
                data:txt1,
                success: function() {
                   alert("success");

                   //here you can simulate click submit
                }
            });
        });
      });
于 2013-06-19T13:51:49.417 回答
0

只需将类型表单更改submitbutton

<input type="button" value="submit" id="submit" name="submit" />
于 2013-06-19T13:51:57.693 回答
0

像这样使用:

将提交更改为按钮。

      <form name="myform" method="post">
      <input type="text" name="txt1" id="txt1" value="121212"/>
      <input type="button" value="submit" id="submit" name="submit" onclick="test();" />


<script> 
       function test()
 { 
var txt =document.getElementById('txt1').value;  //textbox value
alert(txt);
var txt1 = "txt1="+txt;
alert(txt1);
$.ajax({
        type: "POST",
        url: "actionfile.php",
        data:txt1,
        success: function() {
           alert("success");
        }
    });
 }
</script> 

希望这会给你一些解决方案。

于 2013-06-19T13:52:48.530 回答
0

您的代码在您删除时有效,$("#submit").click(function()因为您<form>已发布并发送了数据。

要让 AJAX 提交数据,您需要使用type="button",或将您的事件更改为:

$("#submit").click(function(e) {
    e.preventDefault();
于 2013-06-19T14:02:00.143 回答