我正在尝试检测单选按钮值的更改,以便我可以禁用或启用文本框。
当答案分别为Yes
和No
时,没有任何反应。
这是JS:
$(document).ready(function()
{
$("#input[id=clinic_staff]").change(function()
{
var clinic_staff = $('input[id=clinic_staff]:checked').val();
var y_staff = $('input[id=y_staff]:checked').val();
var m_staff = $('input[id=m_staff]:checked').val();
console.log(clinic_staff);
console.log(m_staff);
if(clinic_staff == "Yes" && m_staff == "No")
{
$("#patient_name_en").val("Confidential");
$("#patient_name_en").prop("disabled", true);
}
else
{
$("#patient_name_en").val("");
$("#patient_name_en").prop("disabled", false);
}
})
});
html就在这里:
<div class="col-sm-3" style="border: 1px solid">
<input type="radio" class="radio-inline" name="clinic_staff" id="clinic_staff" value="Yes">Yes
<br>
<input type="radio" class="radio" name="clinic_staff" id="clinic_staff" value="No">No
</div>
<div class="col-sm-3" style="border: 1px solid">
<input type="radio" class="radio-inline" name="m_staff" id="m_staff" value="Yes">Yes
<br>
<input type="radio" class="radio" name="m_staff" id="m_staff" value="No">No
</div>
<input class="form-control" type="text" name="patient_name_en" id="patient_name_en">
即使我在控制台上看不到没有错误的结果。
我试图使用:
$("#input[id=clinic_staff]:radio").on('change', function(){ //... });
然后:
$("#input[id=clinic_staff]:checked").on('change', function(){ //... });
答案 0 :(得分:2)
有几个问题:
您不能在文档中的多个元素上使用相同的while True:
word = input("Find out how many cents your word is worth. Please enter your word:").lower()
output = sum([ord(c)-96 for c in word])
print("Your word's value is:", output, ".")
。
您的选择器id
永远不会匹配任何内容,因为它正在寻找包含#input[id=clinic_staff]
(id="input"
)和 #input
的元素(id="clinic_staff"
),自然不能同时成真。标签选择器只是标签名称([id=clinic_staff]
),而不是input
。
相反,删除#input
并以不同的方式查找它们,可能是id
:
input[name=clinic_staff]
简化示例:
$("input[name=clinic_staff]").on("change", ...)
$("input[name=clinic_staff]").on("change", function() {
console.log(this.value);
});
附注:强烈建议使用<div>
<input type="radio" class="radio-inline" name="clinic_staff" value="Yes">Yes
<br>
<input type="radio" class="radio" name="clinic_staff" value="No">No
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
元素,以便通过单击文本来选择这些单选按钮。我这样做的首选方法是将label
放在里面input
:
label
$("input[name=clinic_staff]").on("change", function() {
console.log(this.value);
});
...但如果它们必须分开(通常是这种情况),则必须给它们唯一的<div>
<label><input type="radio" class="radio-inline" name="clinic_staff" value="Yes">Yes</label>
<br>
<label><input type="radio" class="radio" name="clinic_staff" value="No">No</label>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
并在标签上使用id
,如下所示:< / p>
for
$("input[name=clinic_staff]").on("change", function() {
console.log(this.value);
});
答案 1 :(得分:0)
像那样使用它
$('input[type=radio][name=clinic_staff]').change(function() //use it with name
})
答案 2 :(得分:0)
试试这个javascript。
$(document).ready(function()
{
$("input").on('change', function()
{
var clinic_staff = $('#clinic_staff:checked').val();
var m_staff = $('#m_staff:checked').val();
console.log(clinic_staff);
console.log(m_staff);
if(clinic_staff == "Yes" && m_staff == "No")
{
$("#patient_name_en").val("Confidential");
$("#patient_name_en").attr("disabled", true);
}
else
{
$("#patient_name_en").val("");
$("#patient_name_en").attr("disabled", false);
}
})
});
免费downvote意味着需要解释,得到它。
首先,$("#input[id=clinic_staff]")
。在jQuery中,#
意味着它获得了某个字段的id。你在那里试图获得id = input和id = clinic_staff的东西。有些人已经说过,不可能的事情。 $('input[id=m_staff]:checked')
要好得多,但必须要说的是,jQuery的存在是为了让您的生活更轻松。你可以简单地在那里写$('#m_staff:checked')
。
另一件事:我让它更具响应性,让它在每次检查另一个按钮时执行该功能。我这样做是因为如果有人选择&#34;是&#34;在第一个然后&#34;否&#34;在第二个中,它不会显示&#34; Confidential&#34;标签,因为你只是在第一个单选按钮上响应事件。
第三,但这不太重要:我把它改回$("input").on('change', function()
。这只是因为我这样使用它,所以随意做你想做的事。
我在这里添加了片段,以防您想要测试它。
<div class="col-sm-3" style="border: 1px solid">
<input type="radio" class="radio-inline" name="clinic_staff" id="clinic_staff" value="Yes">Yes
<br>
<input type="radio" class="radio" name="clinic_staff" id="clinic_staff" value="No">No
</div>
<div class="col-sm-3" style="border: 1px solid">
<input type="radio" class="radio-inline" name="m_staff" id="m_staff" value="Yes">Yes
<br>
<input type="radio" class="radio" name="m_staff" id="m_staff" value="No">No
</div>
<input class="form-control" type="text" name="patient_name_en" id="patient_name_en">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$("input").on('change', function()
{
var clinic_staff = $('#clinic_staff:checked').val();
var m_staff = $('#m_staff:checked').val();
//console.log(clinic_staff);
//console.log(m_staff);
if(clinic_staff == "Yes" && m_staff == "No")
{
$("#patient_name_en").val("Confidential");
$("#patient_name_en").attr("disabled", true);
}
else
{
$("#patient_name_en").val("");
$("#patient_name_en").attr("disabled", false);
}
})
});
</script>
&#13;