2011-10-27 49 views
3

我在我的网站上使用了一个Jquery表单。从通常的字段(名称,电子邮件,dob等)非常简单。用户按下注册按钮后,表单将使用来自'ajaxForm'参数的Jquery提交给php文件。之后,表单滑出,谷歌地图滑动询问客户通过拖动地图上的标记来选择他的当前位置。jquery表单从字段值获取

将标记放到需要的位置后,客户可以点击“提交”按钮,2个值将被传递到另一个php文件:经度和纬度,即坐标。 (请注意,网页不会随时刷新,这一切都发生在一页上。)

我想要做的是将电子邮件字段值与前一个表单一起传递给经纬度,但我可以'真的这么做是因为我几乎是JavaScript的noob。

有没有一种方法可以在提交表单之前从字段'email'声明一个全局变量,所以我稍后可以使用它来与纬度和经度参数一起传递。或者也许有更简单的解决方案?

非常感谢您提前!

,这里是我的jQuery形式

$(document).ready(function() { 
var options = { 
    target: '#total', 
    clearForm: true, 
    beforeSubmit: radio, 
    success: social1 
}; 
$("#perm").ajaxForm(options); 

}); 
function radio(formData, jqForm, options) { 

    if ($('input:radio').is(':checked')) { 

} else { 
    alert('choose gender!'); 
    return false; 
} 

var form = jqForm[0]; 

     if (form.year.value <= form.yob.value) { 
     alert('choose another year!'); 
     return false; 
    } 

}; 




function social1() { 
      $("#map").delay(700).slideDown("slow"); 
      $("#accordion").slideUp("slow"); 
      }; 

的代码而这里的按钮代码

<form id='perm' action='add.php?stay=perm' method='post' onSubmit="return checkForm(this);"> 

回答

1

您已经使用beforeSubmit方法。扩大一点。这是抓住电子邮件地址的好地方。所以,你最终这样的情况下(未经测试):

var email; 
$(document).ready(function() { 
var options = { 
    target: '#total', 
    clearForm: true, 
    beforeSubmit: radio, 
    success: social1 
}; 
$("#perm").ajaxForm(options); 

}); 
function radio(formData, jqForm, options) { 
    email = $("#idOfEmailField").val(); 
    // ... rest of logic here 
}; 
function social1() { 
    alert("Email address is "+email); 
}; 
+0

完美,它的工作完美无瑕!谢谢! – mrkrabs

0

如果你只是隐藏而无需刷新页面的形式,从以前的形式输入电子邮件仍然是可用的(即你不需要申报一个全局变量来存储电子邮件)。例如,

<form id='perm' action='add.php?stay=perm' method='post'> 
    ... 
    <input type="text" id="name" /> 
    <input type="text" id="email" /> 
    <input type="submit" value="Submit" /> 
    ... 
</form> 

<button id='submitCoordinate_button' style='display:none'>Submit coordinate</button> 

<script type="text/javascript"> 
    $('#perm').ajaxForm() { 
     ... 
     success: function() { 
      $('#perm').hide(); // hide the perm form and pull the map in 
      $('#submitCoordinate_button').show(); 
     }, 
     ... 
    } 

    $('#submitCoordinate_button').click(function() { 
     ... 
     var email = $('#email').val(); // you still can get the email here 
     ... 
    }); 
</script> 
+0

感谢以及这是非常有用的提示! – mrkrabs