当我使用jquery设置目标属性时,表单提交没有发生
我在iframe中有表单,我有下面的代码当我使用jquery设置目标属性时,表单提交没有发生,jquery,Jquery,我在iframe中有表单,我有下面的代码 <script type="text/javascript"> var Path="<?= $this->url ?>" $(function() { vReg=0 $("#signin").submit(function() { if(vReg == 1) { return true; } else{
<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,因为当第二次调用匿名函数时,它超出了范围。如果你插入一个断点,你也看到了吗?