我需要在textarea(orderComments)中输入文本的条件下将所需属性添加到html select(toDept)。以下是我的代码...我错过了什么?我是否需要在更改事件上运行我的jquery?
$(document).ready(function() {
if ($('#textareaId').val() != '') {
$("#selectId").attr('required', true);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="textareaId"></textarea>
<select id="selectId">
<option value=""></option>
<option value="opt1">opt1</option>
</select>
谢谢你的时间!
答案 0 :(得分:9)
您需要在textarea更改时运行代码:
var textarea = $('#textareaId');
var select = $('#selectId');
var addOrRemoveRequiredAttribute = function () {
if (textarea.val().length) {
select.attr('required', true);
}
else {
select.attr('required', false);
}
};
// Run now
addOrRemoveRequiredAttribute();
// And when textarea changes
textarea.on('change', addOrRemoveRequiredAttribute);
答案 1 :(得分:1)
$(document).ready(function(){
$("#textareaId").on('change keyup paste', function() {
$("#selectId").attr('required',true);
});
});
当textarea更改时,您需要将此绑定到事件
答案 2 :(得分:1)
您想要检查更改事件,或者也可能检查其他事件。在这里,我将您的代码添加到.on()方法中,以便在任何更改事件之后运行。然后我调用change事件在启动时执行一次。
$(document).ready(function() {
$('body').on('change', '#textareaId', function(){
console.log("test");
if ($(this).val() != '') {
$("#selectId").attr('required', true);
}
});
$('#textareaId').change();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="textareaId"></textarea>
<select id="selectId">
<option value=""></option>
<option value="opt1">opt1</option>
</select>
&#13;
单击“运行”按钮以查看其是否有效。请记住,一旦设置了必需属性,就永远不会取消设置。如果值为空,则需要一个else子句并取消设置。
答案 3 :(得分:0)
每当required
被修改时(通过剪切和粘贴,常规输入,删除等),您都希望动态设置select
的{{1}}属性:
textarea
要明确:如果有人在$('#textareaId').on("input propertychange", function(){ $('#selectId').prop('required', $(this).val().length) });
中输入内容,则textarea
成为必需;如果有人从select
删除了他们的文字,则textarea
的{{1}}属性将被删除(不再需要选择)。