【发布时间】:2012-07-29 03:18:30
【问题描述】:
如果我使用输入字段 type="number" 和 step="100"。 我不希望奇数无效。 我只想增加或减少值为 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 中。
【问题讨论】:
-
我不确定你能否解决这个问题。您可能需要考虑使用 jQuery UI 的微调器 (tjvantoll.com/2012/07/15/…)。
-
这也可能有帮助 - stackoverflow.com/questions/3090369/….
-
@mabs 你检查我的答案了吗?我想我设法让它像你“理想地”想要的那样工作。
-
@TakitIsy 抱歉,我还没有检查出来。这个问题是 6 岁,我已经忘记了。
标签: javascript jquery html input-field