在选择mobiscroll之后形成失败的价值

时间:2013-10-10 00:41:28

标签: javascript php jquery forms mobiscroll

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

1 个答案:

答案 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>