Jquery HTML5输入类型编号“9”后的奇怪行为

Jquery HTML5输入类型编号“9”后的奇怪行为,jquery,forms,html,input,Jquery,Forms,Html,Input,所以我有两个领域,浴室和浴室套房 我对其进行了限制,使“套房”字段永远不能大于“浴室”,如果降低“浴室”的值,则会更改“套间”的值,使其保持不变 脚本其实很简单,效果也不错,但我注意到,如果我在浴室的数字上加上一个等于或大于9的值,它就会开始表现得很奇怪。例如,如果浴室是15,套间将从1直接跳到15,如果你降低浴室,它将不再工作,它实际上表现为20或2000=2,忽略其余数字,只取第一个数字的值 html: 快把我逼疯了,我已经绞尽脑汁好几个小时了 非常感谢您的帮助 这可能是html5错误吗?问

所以我有两个领域,浴室和浴室套房

我对其进行了限制,使“套房”字段永远不能大于“浴室”,如果降低“浴室”的值,则会更改“套间”的值,使其保持不变

脚本其实很简单,效果也不错,但我注意到,如果我在浴室的数字上加上一个等于或大于9的值,它就会开始表现得很奇怪。例如,如果浴室是15,套间将从1直接跳到15,如果你降低浴室,它将不再工作,它实际上表现为20或2000=2,忽略其余数字,只取第一个数字的值

html:

快把我逼疯了,我已经绞尽脑汁好几个小时了

非常感谢您的帮助


这可能是html5错误吗?

问题在于您的ensuite触发器中,您没有将字符串值解析为整数以进行大于的比较

更改:

$('#fensuite').val() > $('#fbathrooms').val()
致:


问题是在您的ensuite触发器中,您尚未将字符串值解析为大于比较的整数

更改:

$('#fensuite').val() > $('#fbathrooms').val()
致:


我实际上看不到您在JSFIDLE中提到的任何错误。aleation没有指定的是您需要使用Google Chrome等浏览器,而不是firefox,它允许您使用控件旁边显示的向上/向下箭头来增加HTML5类型=number的输入。你必须将浴室的数量增加到20个以上,然后开始增加en套房的数量,最终会从少量的en套房增加到更多的浴室。我实际上看不到你在JSFIDLE中提到的这些错误。aleation没有说明的是你需要使用诸如Google Chrome而不是firefox这样的浏览器,可以使用控件旁边显示的上/下箭头来增加HTML5输入的type=number。你必须将浴室的数量增加到20个以上,然后开始增加en套房的数量,最终会从少量en套房增加到更多的浴室。这非常有效!谢谢你的快速回答。我为没有看到xD还不是javascript方面的专家而感到惭愧:/没问题,很容易犯错误。请指定您将来使用的浏览器,因为我相信很多使用Firefox的用户(比如我自己)在尝试chrome之前无法重新创建您的问题。@killercowuk为什么只有在9之后才会失败?@Cyle MDN的JavaScript引用说,如果使用比较运算符进行比较,字符串将根据标准的字典顺序排序,使用Unicode值。因此,当9按字母顺序排在1之后时,如果按字母顺序排列,或者在本例中按unicode值ly排列,9实际上会大于10。所有低于9的一位数作为字符串,其字母顺序仍将小于9,因此,在您输入两位数之前,上述逻辑似乎有效。在这里阅读更多:这非常有效!谢谢你的快速回答。我为没有看到xD还不是javascript方面的专家而感到惭愧:/没问题,很容易犯错误。请指定您将来使用的浏览器,因为我相信很多使用Firefox的用户(比如我自己)在尝试chrome之前无法重新创建您的问题。@killercowuk为什么只有在9之后才会失败?@Cyle MDN的JavaScript引用说,如果使用比较运算符进行比较,字符串将根据标准的字典顺序排序,使用Unicode值。因此,当9按字母顺序排在1之后时,如果按字母顺序排列,或者在本例中按unicode值ly排列,9实际上会大于10。所有低于9的一位数作为字符串,其字母顺序仍将小于9,因此,在您输入两位数之前,上述逻辑似乎有效。请在此处阅读更多信息:
$('#fensuite').val() > $('#fbathrooms').val()
parseInt($('#fensuite').val()) > parseInt($('#fbathrooms').val())