当我使用jquery设置目标属性时,表单提交没有发生

当我使用jquery设置目标属性时,表单提交没有发生,jquery,Jquery,我在iframe中有表单,我有下面的代码 <script type="text/javascript"> var Path="<?= $this->url ?>" $(function() { vReg=0 $("#signin").submit(function() { if(vReg == 1) { return true; } else{

我在iframe中有表单,我有下面的代码

<script type="text/javascript">
var Path="<?= $this->url ?>"
$(function()
{
    vReg=0
    $("#signin").submit(function()
    {
        if(vReg == 1)
        {
            return true;
        }
        else{ 
        var url = Path;
        var data = {};
        $("input").each(function()
        {
            data[$(this).attr('name')] = $(this).val();
        });
        $("select").each(function()
        {
            data[$(this).attr('name')] = $(this).val();
        });
                $.post(url,data,function(resp)
        {
            vError=""
            for(id in resp){
                oResp=resp[id];
                for(key in oResp){
                    vError +=oResp[key]+"\n"
                }
            }

            if(vError == ''){
                vReg=1;
                           $("#formid").attr('target','_top');
                $("#signin").submit();
                                return true;
            }
            else{
                            $("#formid").attr('target','_self');
                alert(vError)
                }
                         return false;
        },'json');

        return false;
        }
    });
});

</script>

var Path=“”
$(函数()
{
vReg=0
$(“#签名”).submit(函数()
{
如果(vReg==1)
{
返回true;
}
否则{
var url=路径;
变量数据={};
$(“输入”)。每个(函数()
{
数据[$(this.attr('name')]=$(this.val();
});
$(“选择”)。每个(函数()
{
数据[$(this.attr('name')]=$(this.val();
});
$.post(url、数据、函数(resp)
{
vError=“”
for(resp中的id){
oResp=resp[id];
for(输入oResp){
vError+=oResp[key]+“\n”
}
}
如果(错误=“”){
vReg=1;
$(“#formid”).attr('target','u top');
$(“#签名”).submit();
返回true;
}
否则{
$(“#formid”).attr(‘目标’,‘自我’);
警报(vError)
}
返回false;
}“json”);
返回false;
}
});
});
我的目标是,如果没有错误,我将应用此目标属性,然后立即提交将该页带到父页的表单。但当我第一次单击表单提交时,我得到了target属性,再次单击第二次,它现在重定向到父页面。 我需要它发生在我第一次点击时


请帮忙

最后我通过使用按钮获得了它,而不是在表单中提交操作,并且代码也发生了更改

<script type="text/javascript">
var Path="<?= $this->url ?>"
$(function()
{
    vReg=0
    $("#signinbtn").click(function()
    {
        if(vReg == 1)
        {
            return true;
        }
        else{ 
        var url = Path;
        var data = {};
        $("input").each(function()
        {
            data[$(this).attr('name')] = $(this).val();
        });
        $("select").each(function()
        {
            data[$(this).attr('name')] = $(this).val();
        });
                $.post(url,data,function(resp)
        {
            vError=""
            for(id in resp){
                oResp=resp[id];
                for(key in oResp){
                    vError +=oResp[key]+"\n"
                }
            }

            if(vError == ''){
                vReg=1;
                           $("#formid").attr('target','_top');
                           $("#signin").submit();
                           return true;
            }
            else{
                            $("#formid").attr('target','_self');
                          alert(vError);
                         return false;
                }

        },'json');

        //return false;
        }
    });
});

</script>

var Path=“”
$(函数()
{
vReg=0
$(“#登录”)。单击(函数()
{
如果(vReg==1)
{
返回true;
}
否则{
var url=路径;
变量数据={};
$(“输入”)。每个(函数()
{
数据[$(this.attr('name')]=$(this.val();
});
$(“选择”)。每个(函数()
{
数据[$(this.attr('name')]=$(this.val();
});
$.post(url、数据、函数(resp)
{
vError=“”
for(resp中的id){
oResp=resp[id];
for(输入oResp){
vError+=oResp[key]+“\n”
}
}
如果(错误=“”){
vReg=1;
$(“#formid”).attr('target','u top');
$(“#签名”).submit();
返回true;
}
否则{
$(“#formid”).attr(‘目标’,‘自我’);
警报(vError);
返回false;
}
}“json”);
//返回false;
}
});
});

但我仍然不知道为什么这里的提交功能不起作用,知道吗?

你有一个名为
Error
的字符串,还是你在检查JavaScript的真正错误?@pimvdb是的。请更新我的帖子check@pimvdb我正在使用post方法验证表单,然后检查错误我认为vreg永远不会等于1,因为当第二次调用匿名函数时,它超出了范围。如果你插入一个断点,你也看到了吗?