0

我有一个带有两个 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 数组,可用的密钥甚至不在其中。

4

1 回答 1

1

仅当通过单击相应按钮提交表单时才提交按钮值。在您的情况下,表单是在“clocklater”或“clockyes”输入的 onChange 事件中提交的。

您可以通过隐藏字段提交它,或者代替在更改事件中提交,您可以使用按钮 type="submit" 并在 mobiscroll 的 onSelect 中触发按钮单击。

例如(对于“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>
于 2013-10-10T08:23:09.577 回答