Jquery弹出表单提交

Jquery弹出表单提交,jquery,ajax,jquery-mobile,Jquery,Ajax,Jquery Mobile,我是ajax新手,现在正在使用jquery mobile。我正在做的是在弹出窗口中创建一个登录表单,我必须编写代码使两者都能工作,但我只是不确定如何将两者连接起来,这样它才能真正工作 这是弹出的html <a href="#popupLogin" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="check" data-theme="a" data-tran

我是ajax新手,现在正在使用jquery mobile。我正在做的是在弹出窗口中创建一个登录表单,我必须编写代码使两者都能工作,但我只是不确定如何将两者连接起来,这样它才能真正工作

这是弹出的html

<a href="#popupLogin" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="check" data-theme="a" data-transition="pop">Login</a>
        <div data-role="popup" id="popupLogin" data-overlay-theme="a" data-theme="a" class="ui-corner-all">
        <form id="popuplogin">
            <div style="padding:10px 20px;">
                <h3>Please Login</h3>
                <label for="un" class="ui-hidden-accessible">Username:</label>
                <input type="text" name="user" id="un" value="" placeholder="username" data-theme="a">
                <label for="pw" class="ui-hidden-accessible">Password:</label>
                <input type="password" name="pass" id="pw" value="" placeholder="password" data-theme="a">
                <button type="submit" data-theme="b" data-icon="check">Sign in</button>
            </div>
        </form>
        </div>
老实说,我甚至不确定我是否完全理解ajax,但如果有人能帮助我理解它。非常感谢。

请看这一行:

<a href="#popupLogin" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="check" data-theme="a" data-transition="pop">Login</a>


更改
请参见此行:

<a href="#popupLogin" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="check" data-theme="a" data-transition="pop">Login</a>



更改
您的弹出代码看起来正确。
我会把你的表格代码改成

<form id="formLogin" action="@submitUrl" method="post">


然后,您的提交按钮将提交表单数据,而无需执行任何javascript。

您的弹出代码看起来是正确的。 我会把你的表格代码改成

<form id="formLogin" action="@submitUrl" method="post">


然后,您的提交按钮可以提交表单数据,而无需执行任何javascript。

尝试类似的操作

<button type="button" data-theme="b" data-icon="check" data-inline="true" onclick="validLogin()">Sign in</button>
function validLogin(){
var uname=$('#uname').val();
var password=$('#password').val();
$.ajax({
    type: "POST",
    url: "scripts/processed.php",
    data: {"uname": uname, "password":password},
    cache: false,
    success: function(result){
        var result=trim(result);
        if(result=='correct'){
            window.location='index.php';
            $('#loginForm').submit();
        }else{
            $("#loginerror").html(result);
            return false;
        }
    }
});
}

这应该是你想要的。

试试这样的方法

<button type="button" data-theme="b" data-icon="check" data-inline="true" onclick="validLogin()">Sign in</button>
function validLogin(){
var uname=$('#uname').val();
var password=$('#password').val();
$.ajax({
    type: "POST",
    url: "scripts/processed.php",
    data: {"uname": uname, "password":password},
    cache: false,
    success: function(result){
        var result=trim(result);
        if(result=='correct'){
            window.location='index.php';
            $('#loginForm').submit();
        }else{
            $("#loginerror").html(result);
            return false;
        }
    }
});
}

这应该可以满足您的要求。

False,他应该完全更改ID,因为它们应该是100%唯一的。弹出窗口加载很好,更改它可以做什么?False,他应该完全更改ID,因为它们应该是100%唯一的。弹出窗口加载很好,更改它可以做什么?没有带有ID的表单
表单
,因此不会触发任何事件。更不用说你有3个不同的标签,它们的ID
popuplogin
不是有效的HTML5。ID必须是唯一的。我理解ajax开头的部分,只是不完全理解这部分代码是如何工作的。另外,我使用的代码直接来自jquery mobile,无论从哪里获得,没有id为“form”的表单,因此不会调用ajax。也没有id为“name”的输入,因此没有值。提交表单时,jQuery将触发,因为它在提交表单时触发。当它触发时,它调用ajax函数。你能解释一下ajax是如何工作的吗。比如,我将在哪里使用我的php来处理数据?键入:“POST”-意味着数据是通过POST发送的,这意味着URL将不包含数据。url—数据将发送到的url。如果URL为www.mywebsite.com/derp.php,则derp.php将接收数据。数据-传递到POST中的数据,由服务器代码处理。Success-从服务器代码接收“回调”的匿名函数。如果调用成功,服务器代码中的任何输出都将返回。没有ID为
form
的表单,因此不会触发任何内容。更不用说你有3个不同的标签,它们的ID
popuplogin
不是有效的HTML5。ID必须是唯一的。我理解ajax开头的部分,只是不完全理解这部分代码是如何工作的。另外,我使用的代码直接来自jquery mobile,无论从哪里获得,没有id为“form”的表单,因此不会调用ajax。也没有id为“name”的输入,因此没有值。提交表单时,jQuery将触发,因为它在提交表单时触发。当它触发时,它调用ajax函数。你能解释一下ajax是如何工作的吗。比如,我将在哪里使用我的php来处理数据?键入:“POST”-意味着数据是通过POST发送的,这意味着URL将不包含数据。url—数据将发送到的url。如果URL为www.mywebsite.com/derp.php,则derp.php将接收数据。数据-传递到POST中的数据,由服务器代码处理。Success-从服务器代码接收“回调”的匿名函数。如果调用成功,服务器代码中的任何输出都将返回。