我在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>
我的目标是,如果我没有错误,我将应用此目标属性,然后立即提交将页面带到父页面的表单。但是当我第一次点击表单提交时,我得到了目标属性,再次单击它现在第二次重定向到父页面。 当我第一次点击时,我需要它。
请帮助
答案 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>
但是我还是不知道为什么提交功能在这里不起作用,不知道吗?