Javascript - 不反转显示/隐藏

标签 javascript html

我创建了一个 fiddle

希望用户点击"is"并显示 # 字段,然后点击“否”将其隐藏。我是否需要另一个关于“否”的函数来执行此操作?

var empNumber, radios;

function showReqEmp() {
    if (!radiosChecked()) {
        empNumber.style.display = 'none';
    } else {
        empNumber.style.display = 'block';
    }
}

function showReqEmp(id) {
    var a = document.getElementById(id);
    if (!radiosChecked()) 
        a.style.display = 'none';
    else 
        a.style.display = 'block';
}

function radiosChecked() {
    var radios = document.getElementsByName('returning_employee');
    for (var i = 0; i < radios.length; i++)
    if (radios[i].checked) return true;
    return false;
}
showReqEmp('requiredNum');
showReqEmp('requiredNumText');
<font color="Red">*</font>Returning Employee:</td>
<input type="radio" name="returning_employee" value="Yes" onclick="showReqEmp('requiredNum'); showReqEmp('requiredNumText')">Yes
<input type="radio" name="returning_employee" value="No" onclick="showReqEmp('requiredNumText'); showReqEmp('requiredNum')" />No
<lable id="requiredNumText" style="display:none"><font color="Red">*</font>Employee Number:</lable>
<lable id="requiredNum" style="display:none">
    <input type="text" id="employee_number" name="employee_number" placeholder="123456789">

好的,现在我在验证时遇到了这个问题。 奥 git _a 显示/隐藏有效,但我无法验证以检查他们在点击"is"后是否输入了数据

var numberExp = /^[0-9\-]+$/;
function validate()
		{
        if(document.newempRequest.returning_employee.checked && !(document.newempRequest.employee_number.value.match(numberExp)))
		{
		alert("Please provide the employee number");
		document.newempRequest.employee_number.focus();
		return false;
		}
        return true;
		}

我尝试更改输入标签以区分是/否,但这会破坏显示/隐藏

HTML代码与上面相同。

最佳答案

只需修改 radiosChecked 函数,仅在选中 Yes 复选框时返回 true

function radiosChecked() {
    var radios = document.getElementsByName('returning_employee')[0];
    return radios.checked;
}

原代码:

var radios = document.getElementsByName('returning_employee');
for (var i = 0; i < radios.length; i++)
if (radios[i].checked) return true;
return false;

即使选中组中的任何复选框,也会返回true。因此不会发生切换。

关于Javascript - 不反转显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713449/

相关文章:

html - 可以在 input[type=range] 中指定不均匀的步骤吗?

javascript - 从数组中随机抽取,无需后退

javascript - 从 Javascript 确定 Django 用户 ID

html - DIV 宽度 : auto is 0 pixel

c# - 如何使用 `PlaceHolder` 代替 `HtmlTableRow` 或 `HtmlTableCell` ?

javascript - 使用 Jquery 删除新扩展的行时自动计算表总计

javascript - Angular 映射 http 响应值与另一个 http 调用

javascript - HTML/Javascript - 停止左/右箭头更改下拉菜单选项

javascript - 与 "switch"相关的函数将不起作用

html - 调整大小时更改跨度位置 : Twitter Bootstrap