JavaScript – 简单查询

请参阅我已有的JSFiddle代码。 我的问题是我需要在文本字段中使用无线电检查文本输入来启用其他无线电,复选框和文本字段。 到目前为止,我只使用无线电选项1 无线电选项2设法启用无线电,复选框和文本字段。

这个JSFiddle可以帮助你们,让你们更加了解我的意思。

HTML:

Have you started trading yet?

  • If Yes, enter trading name:

  • If No, then:

  • Enter trading start date (enabled when started trading yet = yes + trading name = notnull:

  • JS:

     $(function(){ $("#example_0, #example_1").change(function(){ $("#field1, #field2").val("").attr("disabled",true); if($("#example_0").is(":checked")){ $("#field1").removeAttr("disabled"); $("#field1").focus(); } else if($("#example_1").is(":checked")){ $("#field2").removeAttr("disabled"); $("#field2").focus(); } }); }); 

    在此示例中,代码当前启用并关注field1 OR field2,具体取决于它们是否将radio-example_0或example_1分区。 我无法弄清楚的是,如果他们选择是(example_0)然后在field1中输入交易名称,那么如何启用field3。

    希望这比我上一次尝试更清楚。 谢谢你的帮助! (:

    答案:由Daniel V捐赠。

     $(function(){ $("#example_0, #example_1").change(function(){ $("#field1, #field2").val("").attr("disabled",true); if($("#example_0").is(":checked")){ $("#field1").removeAttr("disabled"); $("#field1").focus(); } else if($("#example_1").is(":checked")){ $("#field2").removeAttr("disabled"); $("#field2").focus(); } }); }); $("#field1").blur(function(){ if($("#example_0").is(":checked")){ if($("#field1").val()!==""){ $("#field3").removeAttr("disabled"); } } }); 

    是的,您可以创建一个查找复选框和非空文本框的选择器:

     if ($('#example1:checked,#textfield1[value!=""]').length == 2) { 

    演示: http : //jsfiddle.net/Guffa/rQKRH/

    编辑:

    使用该HTML代码,您可以使用它来确定是否应启用文本框:

     var enable = $('#example_0').is(':checked') && $('#field1').val() != ''; 

    演示: http : //jsfiddle.net/Guffa/cEaeK/18/

    我不确定我是否理解你,但你的意思是这样吗?

      if(($("#example1").is(":checked"))&&!$('#input').val()){//do} 

    演示: http : //jsfiddle.net/WULPL/1/

      $("#field1").blur(function(){ if($("#example_0").is(":checked")){ if($("#field1").val()!==""){ $("#field3").removeAttr("disabled"); } } });