如何添加' required'属性输入textarea的变化?

时间:2014-10-14 16:40:14

标签: jquery html5 forms attributes required

我需要在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>

谢谢你的时间!

4 个答案:

答案 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事件在启动时执行一次。

&#13;
&#13;
    $(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;
&#13;
&#13;

单击“运行”按钮以查看其是否有效。请记住,一旦设置了必需属性,就永远不会取消设置。如果值为空,则需要一个else子句并取消设置。

答案 3 :(得分:0)

每当required被修改时(通过剪切和粘贴,常规输入,删除等),您都希望动态设置select的{​​{1}}属性:

textarea

要明确:如果有人在$('#textareaId').on("input propertychange", function(){ $('#selectId').prop('required', $(this).val().length) }); 中输入内容,则textarea成为必需;如果有人从select删除了他们的文字,则textarea的{​​{1}}属性将被删除(不再需要选择)。

请参阅this working example