我在我的网站上使用Jquery表单。使用通常的字段(名称,电子邮件,dob等),from非常简单。用户按下注册按钮后,使用Jquery的'ajaxForm'参数将表单提交给php文件。之后,表单滑出,谷歌地图滑动,要求客户通过拖动地图上的标记来选择他当前的位置。
将标记放入所需位置后,客户可以单击“提交”按钮,将2个值传递给另一个php文件:纬度和经度,即坐标。 (请注意,页面不会随时刷新,这一切都发生在一页上。)
我想要做的是将上一个表单中的电子邮件字段值与纬度和经度一起传递,但我不能真的这样做,因为我在javascript上几乎都是菜鸟。
有没有办法在提交表单之前从字段'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);">
答案 0 :(得分: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);
};
答案 1 :(得分: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>