如果输入具有值,则应检查特定的单选按钮

时间:2016-09-01 12:55:32

标签: javascript jquery

我想检查输入(name="companyname")是否有值,如果是,则应检查单选按钮(id="Zakelijk")。如果它没有任何值,则应检查另一个单选按钮(id="Particulier")。

请参阅我当前的代码:

    <script type="text/javascript">
        function ShowHideDiv() {
            var chkYes = document.getElementById("Zakelijk");
            var dvPassport1 = document.getElementById("checkzakelijk");
            var dvPassport2 = document.getElementById("checkzakelijk1");
            var dvPassport3 = document.getElementById("checkzakelijk2");
            var display = chkYes.checked ? "block" : "none";
            dvPassport1.style.display = display;
            dvPassport2.style.display = display;
            dvPassport3.style.display = display;
        }
    </script>

    <div class="col-md-12 check-business">
        <div class="form-group form-group-xl">
            <label for="Particulier"><input type="radio" id="Particulier"checked="checked" name="checkzakelijk" onclick="ShowHideDiv()" />Particulier</label>
           <label for="Zakelijk"><input type="radio" id="Zakelijk" name="checkzakelijk" onclick="ShowHideDiv()" />Bedrijf</label>
        </div>
    </div>

    <div class="col-md-12" id="checkzakelijk" style="display:none;">
        <div class="form-group">
            <label for="inputCompanyName" class="control-label">{$LANG.clientareacompanyname}</label>
            <input type="text" name="companyname" id="inputCompanyName" value="{$clientcompanyname}"{if in_array('companyname', $uneditablefields)} disabled="disabled"{/if} class="form-control" />
        </div>
    </div>

4 个答案:

答案 0 :(得分:1)

还有其他方法,但这应该让你去:

$(function() {
    if (($("#inputCompanyName").val() || "") != "") 
    {
        $("#Zakelijk").prop("checked", true)
    } else {
        $("#Particulier").prop("checked", true)
    }
});

这是基于你的html输入名称=&#39; companyname&#39;还有id&#39; inputCompanyName&#39;并将清除其他无线电,因为它们具有相同的name=

修改工作jsfiddle:https://jsfiddle.net/76x42os0/4

更改代码框中的输入值(左上角),然后点击“运行”。

更新:更新了指示的jquery版本3.1.0的小提琴,发现较新版本的jquery 需要 id =匹配#,而在匹配名称=

之前

答案 1 :(得分:0)

如果要在更改输入时进行检查,可以执行

$("input[name='companyname']").change(function(){
      var hasValue = $(this).val() === "";
      $("#Zakelijk").prop("checked", hasValue);
      $("#Particulier").prop("checked", !hasValue);

})

您可以优化代码,但这更具可读性。

答案 2 :(得分:0)

以下是您所关注的一个工作示例(虽然没有考虑您的HTML ID /布局,但您只需更改其中的ID)。

FROM java:jre-alpine
WORKDIR /target
ADD /target/test.jar test.jar
RUN sh -c 'touch /test.jar'
ENTRYPOINT ["java","-Xmx512m","/target/test.jar"]

https://jsfiddle.net/bm18hmLa/3/

它挂钩到已更改的事件,因此每次更改文本框值时都会发生这种情况。

经过深思熟虑:

更改

$("#text-box").on('change', function(){
  if($(this).val() != ""){
    $('#rd1').prop("checked", true)
  }else{
    $('#rd2').prop("checked", true)
  }
});

    $("#text-box").on('change', function(){

使其在响应性方面有点“更好”。

https://jsfiddle.net/bm18hmLa/5/

这是一个带有你的ID名称的版本。

https://jsfiddle.net/bm18hmLa/6/

答案 3 :(得分:0)

如果您需要Javascript中的解决方案

if(document.getElementById("inputCompanyName").value !== ""){
   document.getElementById("Zakelijk").checked = true;
   document.getElementById("Particulier").checked = false; 
}
else{
   document.getElementById("Particulier").checked = true;
   document.getElementById("Zakelijk").checked = false;
}