jQuery检查是否<输入>存在并且具有值
jQuery check if <input> exists and has a value
我有以下示例:
<input type="text" class="input1" value="bla"/>
有没有办法检查这个元素是否存在,并且在一个语句中是否有值?或者,至少,任何比更短的东西
if($('.input1').length > 0 && $('input1').val() != '')
只是在一英里长的条件下感到沮丧。
如果输入不存在,它就不会有值。试试这个。。。
if($('.input1').val())
你可以做:
if($('.input1').length && $('.input1').val().length)
当值为0
时,length
在条件下计算为false
。
您可以这样做:
jQuery.fn.existsWithValue = function() {
return this.length && this.val().length;
}
if ($(selector).existsWithValue()) {
// Do something
}
我在jQuery代码中找到了它。.val((函数目前从attributes.js的第165行开始
val: function( value ) {
var hooks, ret, isFunction,
elem = this[0];
/// NO ARGUMENTS, BECAUSE NOT SETTING VALUE
if ( !arguments.length ) {
/// IF NOT DEFINED, THIS BLOCK IS NOT ENTERED. HENCE 'UNDEFINED'
if ( elem ) {
hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
return ret;
}
ret = elem.value;
/// IF IS DEFINED, JQUERY WILL CHECK TYPE AND RETURN APPROPRIATE 'EMPTY' VALUE
return typeof ret === "string" ?
// handle most common string cases
ret.replace(rreturn, "") :
// handle cases where value is null/undef or number
ret == null ? "" : ret;
}
return;
}
因此,您将得到undefined
、""
或null
——所有这些在if语句中的求值结果都为false。
您可以创建自己的自定义选择器:hasValue
,然后使用它来查找、筛选或测试任何其他jQuery元素。
jQuery.expr[':'].hasValue = function(el,index,match) {
return el.value != "";
};
然后你可以找到这样的元素:
var data = $("form input:hasValue").serialize();
或者用.is()
测试当前元件
var elHasValue = $("#name").is(":hasValue");
jQuery.expr[':'].hasValue = function(el) {
return el.value != "";
};
var data = $("form input:hasValue").serialize();
console.log(data)
var elHasValue = $("[name='LastName']").is(":hasValue");
console.log(elHasValue)
label { display: block; margin-top:10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<label>
First Name:
<input type="text" name="FirstName" value="Frida" />
</label>
<label>
Last Name:
<input type="text" name="LastName" />
</label>
</form>
进一步阅读:
- 使jQuery
:contains
大小写不敏感 - 制作您自己的自定义jQuery选择器
- 探索jQuery选择器,第3部分
if($('#user_inp').length > 0 && $('#user_inp').val() != '')
{
$('#user_inp').css({"font-size":"18px"});
$('#user_line').css({"background-color":"#4cae4c","transition":"0.5s","height":"2px"});
$('#username').css({"color":"#4cae4c","transition":"0.5s","font-size":"18px"});
}
我会这样做:$('input[value]').something
。这会找到所有有价值的输入,并对其进行操作。
相关文章:
- j查询检查 remove() 后是否存在输入
- 检查输入/文本区域中粘贴的文本是否存在无效的章程
- 如何将新输入的文本包装到下面已经存在的span标记中
- Safari存在文本输入问题,用户输入时会选择文本,导致文本丢失
- 检查任何输入或文本区域中是否存在非法字符
- 如何检查输入中的值以及值是否存在提交表单?jquery.
- 如果输入不存在,请插入输入
- jQuery 将类附加到输入的父 TD(如果存在 val)
- 检查 mongo 数据库中是否存在后期输入
- 我使用jquery创建输入字段,刷新页面后如何保持这个“新输入值”的存在
- 文件输入 :Chrome 在提交表单之前不会检查文件是否仍然存在
- 检查表单输入是否存在
- 检查表单字段的输入 - 如果存在邮政编码,则提醒 javascript
- Rails 输入表单填充了 jQuery .val(),但参数中不存在数据
- 检查 PHP 或 JavaScript 中是否存在输入文件夹
- 如何将 jquery keyup() 的每个输入值保存在 MySQL 数据库中
- 当文件输入中存在名称字段时,getElementById 不会发布
- 是否存在输入类型=“0”的事件;文件”;
- 不存在的属性HTML输入字段
- 当存在'这是一个名为submit的输入