如果我使用type =“number”的输入字段,其中step =“100”.
我不希望奇数无效.
我只想增加或减少值为1000.
我不希望奇数无效.
我只想增加或减少值为1000.
<input type="number" min="100" max="999999" step="100" />
如果用户输入值“199”并提交,则他/她会收到错误,因为该值不能被100分割.
但我想要的步骤值是控制微调器的行为,例如如果用户点击我希望值199变为200,如果他/她点击,我希望它变为100.或者理想情况下,我希望值增加或减少值为100.
我该怎么做呢?
我尝试使用无效事件(使用jQuery 1.7.2),如下所示:
$( "[type='number']" ).bind( 'invalid',function( e ) { var el = $( this ),val = el.val( ),min = el.attr( 'min' ),max = el.attr( 'max' ); if ( val >= min && val <= max ) { return false; } } );
但这导致表单未提交.
PS.:这是Fedora 16上的Google Chrome 20.0.1132.57.
解决方法
我不认为你可以,步骤和验证是
closely tied together.将来你可以覆盖
stepUp()
and stepDown()
functions来获得你描述的行为,但我还没有研究过这是否是这些事情的预期用例.我建议在
WHATWG mailing list上发帖,具体询问这些功能并描述你的用例.
出于当前的实际目的,您是否尝试过设置step = 1并绑定到click事件来捕获?我可以看到,区分“向上”和“向下”点击可能存在问题,但这可能是可以克服的.然而,可能更容易使用文本输入,适当地设置模式属性并实现自己的微调器.