jQuery验证在更改特定的一组值时失败
jQuery validation fails on change for a specific set values
我在检查学生标记输入字段的标记时遇到了一个奇怪的验证错误。
输入id
保持最大标记以与输入值进行比较(在当前情况下为35)。因此,如果用户输入的值小于35或35,则可以接受,但不大于35。但在当前的情况下,它打破了100和更大的值。
保持简单和简短,我的HTML
是这样的-
<input type="text" value="30" id="studentname[98989898][marks-35_compid-1_subid-12]" name="studentname[98989898][marks-35_compid-1_subid-12]" style="width:50px;text-align:center">
My jQuery code -
jQuery(document).ready(function() {
jQuery("input[type='text']").on('change', function(event) {
var colId = event.target.id;
var maxMarksSplit=colId.split("marks-");
var maxMarks = maxMarksSplit[1].split("_compid");
alert("Max marks " + maxMarks[0] );
if( jQuery(this).val() > maxMarks[0] )
{
alert("Please check your value!" );
jQuery(this).val(0);
}
});
});
工作小提琴DEMO -> http://jsfiddle.net/swapnesh/ktKE3/
小于100
的测试通过,大于或等于100
的测试失败。
让我知道这个奇怪的验证行为和我在逻辑上做错了什么
"parseFloat"可能有帮助
试试这个
jQuery(document).ready(function() {
jQuery("input[type='text']").on('change', function(event) {
var colId = event.target.id;
var maxMarksSplit=colId.split("marks-");
var maxMarks = maxMarksSplit[1].split("_compid");
alert("Max marks " + maxMarks[0] );
if( parseFloat(jQuery(this).val()) > parseFloat(maxMarks))
{
alert("Please check your value!" );
jQuery(this).val(0);
}
});
});
您正在比较错误的值。maxMarks是拆分数组,你要与maxMarks[0]比较。
此外,您还需要解析输入,因为它们都将作为字符串提取:
jQuery("input[type='text']").on('change', function(event) {
var colId = event.target.id;
var maxMarksSplit=colId.split("marks-");
var maxMarks = maxMarksSplit[1].split("_compid");
alert("Max marks " + maxMarks[0] );
if( parseInt(jQuery(this).val()) + parseInt(maxMarks[0]) )
{
alert("Please check your value!" );
jQuery(this).val(0);
}
});
问题在于你的比较,你比较你的值与maxMarks而不是maxMarks[0]
jQuery(document).ready(function() {
jQuery("input[type='text']").on('change', function(event) {
var colId = event.target.id;
var maxMarksSplit=colId.split("marks-");
var maxMarks = maxMarksSplit[1].split("_compid");
alert("Max marks " + maxMarks[0] );
if( jQuery(this).val() > parseInt(maxMarks[0]) ) // Here the modification
{
alert("Please check your value!" );
jQuery(this).val(0);
}
});
});
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 从对象创建嵌套数组失败
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何查找正则表达式的哪个部分/组失败
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 简单的Javascript文本编辑器或一组函数
- 基于日期范围的一组日期范围内的天数
- 处理对象数组并将它们以 4 个为一组进行分配
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 使一组对象与 jQuery 一起拖动
- jQuery验证在更改特定的一组值时失败