第一个带有 jQuery 的空输入字段
first empty input field with jQuery
我正在尝试查找具有特定类的第一个空输入字段(item_number)
下面不起作用
$("#pos_transaction_line_line input[value=''].item_number:first");
以下工作的地方
$("#pos_transaction_line_line input.item_number").each(function(){
if(!$(this).val()){
//get the field here
return false;
}
});
检查代码后,我意识到这种情况正在发生,因为即使我在文本字段中输入了一些值,文本字段的值仍然为空。所以,我的问题是,在某个人输入文本字段中的值后,文本字段的值在什么条件下填充。
其次,有没有其他更好的方法来获得该领域
您发现,更新<input>
的值会更新其值property
(HTMLInputElement.value
),但不会更新value
属性(<input value="...">
)。
尽管我不确定任何性能优势,但我建议以下几点:
// selects the collection of elements represented by the selector,
// then filters that collection:
$("#pos_transaction_line_line input.item_number").filter(function(){
// retains those <input>s the length of whose value property
// is zero:
return this.value.length === 0;
// then retrieves the first element (as a jQuery object still):
}).eq(0);
但是,上述方法确实存在以下事实:它将检索与选择器匹配的所有元素,然后在filter()
方法中循环遍历这些元素,然后再返回页面中的第一个匹配项。
这确实会降低性能,但在面对不同的情况和要求时可能需要扩大选择范围时,可以作为使用 each()
的替代方法。
引用:
-
eq()
. -
filter()
.
这是属性和属性之间的区别,value 属性用于设置输入元素的初始值,之后对值所做的任何更改都将在 value 属性中更新。最初,value
属性的值将被复制到value
属性,从而给出输入字段的初始值。
我们在这里使用的选择器是属性选择器,它看不到对 value 属性所做的更改,这就是发生这种情况的原因。
使用 eq() 尝试此代码
if($('#pos_transaction_line_line input.item_number').eq(0).val() !== '');
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在HTML输入字段中添加不可删除的后缀
- 互斥单选按钮和相应的输入字段
- 在IE9中的输入字段中输入焦点最近按钮
- 选中单选框时将属性添加到输入字段
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 输入字段将't获取更新的值
- 如何选择多个输入字段并删除所需的属性
- 输入字段,只接受0到12之间的数字
- 单击鼠标,用MySQL数据填充html表单输入字段
- 使用jquery将输入字段转换为文本
- Model中的Typeahead返回空值以形成输入字段
- 如何从查询字符串中的输入字段发回文本
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- 将值传递给jquery创建的输入字段