如何在javascript的if条件中检查字符串变量值是否等于空白



我在选择选项中选择了v="value",但isPendChk变量不会变成真正的

var isPendChk = false;
$('#pendingCategoryId').each(function(){
var v = $(this).find("option:selected").text();
if (v !== null && v !== ''){
isPendChk = true;
}
});
if(isPendChk){
$(".radio").addClass("chkPoint").prop("disabled", true);
$(".checkbox").addClass("chkPoint").prop("disabled", true);
}

在这里,我在单击时使用.ech((迭代元素,并找到在选项同级组中选择的值。一旦找到选定的选项,我们就会禁用提交按钮和元素。您也可以禁用元素,只需将选择器更改为要禁用的id即可。如果您想在单击提交按钮之前激发,也可以使用.change((。

注意:请确保使用.each()或元素列表的类循环遍历一个元素。

来自MDN源: .each((方法旨在使DOM循环结构简洁且不易出错。当被调用时,它会遍历作为jQuery对象一部分的DOM元素。每次运行回调时,都会从0开始传递当前循环迭代。更重要的是,回调是在当前DOM元素的上下文中触发的,因此关键字this指的是该元素

因此,当您在.each循环中使用ID时,它将无法按预期工作,因为ID对一个元素是唯一的,或者应该是唯一的。请在.each()中使用类或元素标记。

奖金: 设置一个解锁按钮,以便用户在意外输入错误信息时可以对其条目进行更改。

// Using .click() with .each(selector = element tag)
$('#submit').click(function() {
$( "option" ).each(function() {  
if($(this).find("select option:selected")) {
$("#submit, #cars").prop("disabled", true);
}
});
});
// Using .change() with .each(selector = class) added button to unlock for user sake!
$('#people').change(function() {
$( ".ppl" ).each(function() {  
if($(this).find(".ppl:selected")) {
$("#people").prop("disabled", true);
}
$('#change').click(function(){
$("#people, #cars, #submit").prop("disabled", false);
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<label for="cars">Choose a car:</label>
<select id="cars">
<option class="opt" value="volvo">Volvo</option>
<option class="opt" value="saab">Saab</option>
<option class="opt" value="opel">Opel</option>
<option class="opt" value="audi">Audi</option>
</select>
<input type="submit" id="submit" name="submit" value="submit values">
<br><br>
<select id="people">
<option class="ppl" value="John">John</option>
<option class="ppl" value="Sally">Sally</option>
<option class="ppl" value="Jack">Jack</option>
<option class="ppl" value="Jim">Jim</option>
</select>
<input type="submit" id="change" name="change" value="Unlock?">

最新更新