我有一个带有两个mobiscroll实例的表单,其中一个实例根据点击的按钮弹出。
$(function(){
$('#clocklater').mobiscroll().time({
theme: 'default',
display: 'modal',
mode: 'scroller',
setText: "Save",
cancelText: "Cancel",
headerText: "Available after",
timeFormat: 'HHii',
timeWheels: 'HHii',
stepMinute:10
});
$('#later').click(function(){
$('#clocklater').mobiscroll('show');
$('[name=available]').val(2);
return false;
});
});
$(function(){
$('#clockyes').mobiscroll().time({
theme: 'default',
display: 'modal',
mode: 'scroller',
setText: "Save",
cancelText: "Cancel",
headerText: "ETA station",
timeFormat: 'ii',
timeWheels: 'ii',
stepMinute:5
});
$('#yes').click(function(){
$('#clockyes').mobiscroll('show');
$('input[name=available]').val(1);
return true;
});
});
我的HTML是
<form name="response" action="" method="post" >
<input name="clocklater" id="clocklater" class="i-txt" type='hidden' onChange="document.response.submit();"/>
<input name="clockyes" id="clockyes" class="i-txt" type='hidden' onChange="document.response.submit();"/>
<div class='yes button'><input id='yes' name='available' type='button' alt="YES" value="yes" /></div>
<div class='no button'><input id='no' name='available' type='button' alt="NO" value="no" /></div>
<div class='later button'><input id='later' name='available' type='button' alt="later" value="later" /></div>
</form>
(aarrgghh不能很好地格式化)
当我在没有调用mobiscroll的情况下提交表单时,一切正常,但是当我在点击是或稍后按钮后调用mobiscroll时,可用输入的值不会被传递。控制台没有产生任何错误。
正如您所看到的,我已尝试根据点击强制取值,但这也不起作用。如果我在返回之前发出警报,那么值就是 - 这也表明js没有中断。
有关为什么可用的价值不存在的任何想法?
FWIW我正在使用PHP处理表单。
[更新] 我刚刚转储了POST数组,可用键甚至不在其中。
答案 0 :(得分:1)
只有在单击相应按钮提交表单时才会提交按钮值。 在您的情况下,表单是在“clocklater”或“clockyes”输入的onChange事件中提交的。
您可以通过隐藏字段提交,或者不是在更改事件中提交,您可以使用按钮类型=“提交”并在mobiscroll的onSelect中触发按钮单击。
E.g。 (对于“clocklater”):
$(function(){
$('#clocklater').mobiscroll().time({
theme: 'default',
display: 'modal',
mode: 'scroller',
setText: "Save",
cancelText: "Cancel",
headerText: "Available after",
timeFormat: 'HHii',
timeWheels: 'HHii',
stepMinute:10,
onSelect: function () {
submit = true;
$('[name=available]').val(2);
$('#later').click();
}
});
var submit;
$('#later').click(function(){
if (!submit) {
$('#clocklater').mobiscroll('show');
return false;
}
submit = false;
});
});
HTML更改:
<input name="clocklater" id="clocklater" class="i-txt" type='hidden' />
<div class='later button'>
<input id='later' name='available' type='submit' alt="later" value="later" />
</div>