Button和AJAX没有响应

时间:2017-06-08 15:00:41

标签: javascript ajax

我正在努力尝试使用AJAX运行php脚本。要清楚我是javaScript和PHP的新手,所以我的代码可能完全错误。我认为问题出在我的按钮点击代码而不是ajax代码。任何帮助都很棒

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
    $(".submit").click(function myCall() {
        var subdata = $("#form").serializeArray();
        var request = $.ajax({
            url: "construct_new.php",
            type: "GET",
            data: subdata
        });
        return false;
    });
    </script>
    <div>   
        <form id="form">
            Name of Product: <input type="text" name="productName" value="Enter Here">
            <input type="button" name="submit" value="Submit" class="submit">
        </form>
    </div>  

2 个答案:

答案 0 :(得分:2)

你需要在jQuery周围DOM ready wrapper因为它在元素存在之前执行(或者由浏览器呈现)。

您可以使用$(function(){ })$(document).ready(function(){ });

$(function(){
    $(".submit").click(function myCall() {
         var subdata = $("#form").serializeArray();
         var request = $.ajax({
             url: "construct_new.php",
             type: "GET",
             data: subdata
         });
         return false;
     });
});

在这种情况下,您不需要serializeArray(),只需serialize()

没有定义成功或完整的功能,因此在提交时不会看到任何内容,除非您看到开发者控制台/网络标签。

此外,使用表单的提交事件优先于提交按钮的单击事件。

$(function(){
    $("#form").submit(function myCall() {
         var subdata = $(this).serialize();
         var request = $.ajax({
             url: "construct_new.php",
             type: "GET",
             data: subdata,
             success : function(response){
                 console.log("success!");
             }
         });
         return false;
     });
});

答案 1 :(得分:0)

将jQuery放在像这样的文档中,并阻止默认操作(提交表单):

public static bool numValidation(string strNum)
{

    Regex regex = new Regex(@"^[0-9]+$");

    return (regex.IsMatch(strNum)) ;
}

文档就绪确保页面已完成加载所有内容。 e.preventDefault()停止默认操作(对于表单,提交,标记,链接后)。