Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript preventDefault函数不使用Ajax/表单处理_Javascript_Php_Jquery_Ajax_Preventdefault - Fatal编程技术网

Javascript preventDefault函数不使用Ajax/表单处理

Javascript preventDefault函数不使用Ajax/表单处理,javascript,php,jquery,ajax,preventdefault,Javascript,Php,Jquery,Ajax,Preventdefault,下面的表单我一直在尝试通过Ajax函数传递,而不是通过action/PHP <section class="registration"> <form name="userRegistration" method="post" id="userregister" action="install.php"> <label for="username">Username</label> <input

下面的表单我一直在尝试通过Ajax函数传递,而不是通过action/PHP

    <section class="registration">
    <form name="userRegistration" method="post" id="userregister" action="install.php">

        <label for="username">Username</label>
        <input type="text" name="username" id="username" value="admin">



        <label for="username">Author Name</label>
        <input type="text" name="authname" id="authname" placeholder="Example: John Doe">


        <label for="password">Password</label>
        <input type="password" name="pass" id="pass" value="">    



        <label for="sitetitle">Site Title</label>
        <input type="text" name="sitetitle" id="sitetitle" >


        <label for="sitedesc">Site Description</label>
        <input type="text" name="sitedesc" id="sitedesc" >



        <label for="server">Server</label>
        <input type="text" name="server" id="server" placeholder="Example: localhost">


        <label for="database">Database</label>
        <input type="text" name="database" id="database" >   



        <label for="dbun">DB Username</label>
        <input type="text" name="dbun" id="dbun" >



        <label for="dbpw">DB Password</label>
        <input type="password" name="dbpw" id="dbpw" >

        <input type="submit" />
    </form>
}))


但是表单似乎没有阻止默认值,而是完全忽略所有内容并将其传递给操作,我不太清楚为什么。实际的install.php函数工作正常,但我不明白为什么它不通过Ajax。

preventDefault
停止事件冒泡,但取消自事件。对于取消默认行为(打开表单url),必须从函数返回
false


更好的做法是处理sumbit按钮
点击
,但表单事件“提交”。

选择器
#userregister表单
将匹配一个
表单
元素,该元素是id为
userregister
的元素的后代,这不是您在这里看到的。好吧,我是个十足的白痴。谢谢。@CBroe描述得很好!将选择器从
#userregister表单
替换为
表单#userregister
$(document).on('submit', '#userregister form', function(e) {
 $.ajax({
    url: $(this).attr('action'),
    type: $(this).attr('method'),
    data: $(this).serialize(),
    success: function(html) {
    alert('ok');
    }
});
e.preventDefault();
$(document).on("submit", "#userregister form", function (e) {
    $.ajax({
        url: $(this).attr('action'),
        type: $(this).attr('method'),
        data: $(this).serialize(),
        success: function(html) {
            alert('ok');
        }
    });
    e.preventDefault();
    return false;
});