jQuery:只填充输入字段和选择菜单中的一个

时间:2016-03-02 07:43:26

标签: javascript jquery validation input

如果填写了某个输入字段,我想禁用我的选择菜单。另一方面,如果选择菜单中除了none之外的任何选项,则我希望禁用该输入字段。所以最终我想提交一个输入字段的值。

到目前为止我做了什么:

Fiddle Demo

jQuery代码:

$(document).ready(function() {
    $('#Existing_Client').change(function() {
        if ($("#Existing_Client").val() != "none") {
            $('#New_Client').prop('disabled', this.value.length === 0 ? false : true);
        }
    });

    $('#New_Client').change(function() {
        $('#Existing_Client').prop('disabled', this.value.length === 0 ? false : true);
    });
});

我工作中的问题:

  1. 当我选择" none"以外的其他内容时,输入字段会被禁用,但是当我再次选择时,输入字段仍然被禁用!

  2. 如果我在输入字段中输入任何内容,则不会禁用选择菜单。

4 个答案:

答案 0 :(得分:0)

$(document).ready(function() {
    $('#Existing_Client').change(function() {
        if ($("#Existing_Client").val() != "none") {
            $('#New_Client').prop('disabled', true);
        } else {
            $('#New_Client').prop('disabled', false);
        }
    });
});

答案 1 :(得分:0)

$(document).ready(function() {
  $('#Existing_Client').change(function() {
      $('#New_Client').prop('disabled', $('option:selected', this).text().length);
  });

  $('#New_Client').change(function() {
  console.log($(this).val().length)
    $('#Existing_Client').prop('disabled', $(this).val().length);
  });
});

试试这个DEMO

答案 2 :(得分:0)

$(document).ready(function() {
  $('#Existing_Client').change(function() {   
      $('#New_Client').prop('disabled', $(this).val() === "none" ? false : true); 
  });

  $('#New_Client').on("keyup", function() {
    $('#Existing_Client').prop('disabled', this.value.length === 0 ? false : true);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="id" id="Existing_Client">
  <option value="none"></option>
  <option value="Something 1">Something 1</option>
  <option value="Something 2">Something 2</option>
  <option value="Something 3">Something 3</option>
</select>
<br>
<input type="text" name="new_id" dir="ltr" id="New_Client" />

答案 3 :(得分:0)

你可以这样做。

$('#Existing_Client').change(function() {
  $('#New_Client').prop('disabled', this.value != "none");
});

$('#New_Client').keyup(function() {
  $('#Existing_Client').prop('disabled', this.value.length != 0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="id" id="Existing_Client">
  <option value="none"></option>
  <option value="Something 1">Something 1</option>
  <option value="Something 2">Something 2</option>
  <option value="Something 3">Something 3</option>
</select>
<br>
<input type="text" name="new_id" dir="ltr" id="New_Client" />

UPDATED FIDDLE