Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果输入有值,则应选中特定单选按钮_Javascript_Jquery - Fatal编程技术网

Javascript 如果输入有值,则应选中特定单选按钮

Javascript 如果输入有值,则应选中特定单选按钮,javascript,jquery,Javascript,Jquery,我想检查输入(name=“companyname”)是否有值,如果有,它应该检查单选按钮(id=“Zakelijk”)。如果没有任何值,则应选中其他单选按钮(id=“Particulier”) 请参阅我的当前代码: <script type="text/javascript"> function ShowHideDiv() { var chkYes = document.getElementById("Zakelijk");

我想检查输入(
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>

函数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?“块”:“无”;
dvPassport1.style.display=显示;
dvPassport2.style.display=显示;
dvPassport3.style.display=显示;
}
微粒子
贝德里杰夫
{$LANG.clientareacompanyname}

还有其他方法,但这应该可以让您继续:

$(function() {
    if (($("#inputCompanyName").val() || "") != "") 
    {
        $("#Zakelijk").prop("checked", true)
    } else {
        $("#Particulier").prop("checked", true)
    }
});
这是基于您的html,其中输入名称='companyname'也具有id'inputCompanyName',并且将清除另一个收音机,因为它们具有相同的
name=


编辑工作界面:

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


更新:将fiddle更新到指定的jquery版本3.1.0,并发现jquery的更新版本需要id=to match#,而在名称上匹配之前=

如果要在更改输入时检查它,可以执行以下操作

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

})

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

以下是您所追求的工作示例(尽管没有考虑HTML ID/布局,但您只需在其中更改ID即可)

它钩住已更改的事件,因此每次更改文本框值时都会发生

思考之后:

改变

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

使它在响应方面有点“更好”

这是一个有你的ID名的版本


以防您需要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;
}

谢谢我试过你的代码,但似乎不起作用。单选按钮未选中。@HenkZ您需要jQuery。我知道,我在
之前已经加载了它,但这似乎不起作用。谢谢!我试过你的代码,但似乎不起作用。单选按钮未选中。是否已加载jquery?您已将问题标记为jquery。我知道,我已经在
之前加载了它,但这似乎不起作用。您是否将此代码放在html之前?尝试添加成功的
$(function()
(我将编辑答案)!非常感谢。当“#Zakelijk”是否选中?由于收音机的工作方式,当您将其设置为true时,您不需要将其设置为false。谢谢!我尝试了您的代码,但似乎不起作用。单选按钮未选中。您好-您已经收到了许多解决方案,这些解决方案应该可以正常工作,包括多个JSFIDLE,显示它们可以工作。如果按照您的评论,这些如果仍然不适合您,请以您的代码为起点创建一个JSFIDLE,因为可能还有其他东西影响您的功能,这将有助于排除它。另请参阅,重点介绍可验证性。
    $("#text-box").on('input', function(){
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;
}