我有一个带有两个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处理表单。
UPDATE我刚刚转储了POST数组,而可用的键甚至不在其中。
发布于 2013-10-10 08:23:09
只有当通过单击相应的按钮提交表单时,才会提交按钮值。在您的示例中,表单是在“时钟”或“时钟”输入的onChange事件中提交的。
您可以通过隐藏字段提交它,或者不用在更改事件中提交,您可以使用按钮type=" submit“并在mobiscroll的onSelect中触发一个按钮单击。
例如(用于“时钟”):
$(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>https://stackoverflow.com/questions/19285191
复制相似问题