使用jquery设置目标属性时,表单提交未发生

时间:2011-07-12 12:10:40

标签: jquery

我在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>

我的目标是,如果我没有错误,我将应用此目标属性,然后立即提交将页面带到父页面的表单。但是当我第一次点击表单提交时,我得到了目标属性,再次单击它现在第二次重定向到父页面。 当我第一次点击时,我需要它。

请帮助

1 个答案:

答案 0 :(得分:0)

最后我通过使用按钮而不是在表单中提交Action并且在代码中进行了更改来获得它

<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>

但是我还是不知道为什么提交功能在这里不起作用,不知道吗?