Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Jquery 单击“如果$.get返回值,则发出警报”;如果未返回值,则提交表单_Jquery_Form Submit - Fatal编程技术网

Jquery 单击“如果$.get返回值,则发出警报”;如果未返回值,则提交表单

Jquery 单击“如果$.get返回值,则发出警报”;如果未返回值,则提交表单,jquery,form-submit,Jquery,Form Submit,如果单击“提交”按钮,请阻止默认操作,并查看“帐户名称”字段是否已在使用中。如果$.get()返回结果,请将结果通知用户。如果没有,请提交带有id=“添加账户表单”的表单 我的问题是我的else{}语句没有提交表单。单击submit时没有收到响应&没有返回值 此外,我还想更改代码的位置$(“#添加帐户\u表单”)。提交(..)而不是。单击()。但是,在脚本中稍后尝试提交表单时,这会导致问题吗 <script type="text/javascript"> $(

如果单击“提交”按钮,请阻止默认操作,并查看“帐户名称”字段是否已在使用中。如果
$.get()
返回结果,请将结果通知用户。如果没有,请提交带有
id=“添加账户表单”
的表单

我的问题是我的else{}语句没有提交表单。单击submit时没有收到响应&没有返回值

此外,我还想更改代码的位置
$(“#添加帐户\u表单”)。提交(..)
而不是
。单击()
。但是,在脚本中稍后尝试提交表单时,这会导致问题吗

    <script type="text/javascript">
        $(document).ready( function () { 

            $("#submit").click( function () { 
                 var account_name = $("input[name=account_name]").val();
                    $.get(
                        "'.url::site("ajax/check_account_name").'", 
                    {account_name: account_name}, 
                    function(data){ 
                        if(data.length > 0){            
                                    confirm( "The account name you entered looks like the following:\n"
                                                        +data+
                                            "Press cancel if this account already exists or ok to create it."
                                                ); 
                        }else{
                            $("#add_account_form").submit();
                        }                   
                    });
                    return false;                
                });
            });
    </script>
                                                    <p>
                                                        <input type="submit" id="submit" class="submit small" name="submit" value="Submit" />
                                                    </p>
                                                </form> 

谢谢你的帮助@Dan猜一猜,但是也许data.length总是正确的

我会尝试返回一个布尔值或一点

然后:

希望有帮助:)

编辑:误读问题

可能发生的情况是,当单击“提交”按钮时,表单会在单击后提交。换句话说,您可能必须捕获form.submit事件:

$('form').submit(function() {
    var submitForm = true;
    var account_name = $("input[name=account_name]").val();
    $.get(
        "'.url::site("ajax/check_account_name").'", 
    {account_name: account_name}, 
    function(data){ 
        if(data.length > 0){
            if (!confirm("The account name you entered looks like the following:\n"
                        +data+
                        "Press cancel if this account already exists or ok to create it."
                        )) {
                submitForm = false;
        }                   
    });
    if (!submitForm) {
        return false;                
    }
});

@丹:谢谢,但我对返回的数据没有问题。data.length工作正常-它总是返回true,这就是我这样使用它的原因。我的问题来自
$('#表单id').submit()$(“#添加#u账户_表格”)。提交()
应该完全执行!?;-)乍一看,如果第一次尝试失败,您希望重新提交表单!不是吗!?但是,如果您的表单第一次出现错误,为什么下一次它会工作!?;-)
if(data) {
  confirm();
} else {
  $('#form-id').submit();
}
$('form').submit(function() {
    var submitForm = true;
    var account_name = $("input[name=account_name]").val();
    $.get(
        "'.url::site("ajax/check_account_name").'", 
    {account_name: account_name}, 
    function(data){ 
        if(data.length > 0){
            if (!confirm("The account name you entered looks like the following:\n"
                        +data+
                        "Press cancel if this account already exists or ok to create it."
                        )) {
                submitForm = false;
        }                   
    });
    if (!submitForm) {
        return false;                
    }
});