使用 JQuery 和 JS 访问单选按钮值时获取 "on"
Getting "on" when accessing radio buttons values with JQuery and JS
我正在尝试访问单选按钮值,但我得到的只是“打开”。
我试过 JQuery 和 JS,都给了我这个结果。
我的输入内部有一个跨度,当我得到输入的 val() 时,它会给我“打开”。
当尝试访问输入内部的跨度时,它不会显示任何内容。
我的代码:
<ul id="sportCourtsRow" tabindex=44>
<div id="sportCourtsRowIn" style="margin-left: 31vw; margin-top: 0.8vh;">
{% for c in courtsB %}
{% if loop.index == 1 %}
<li class="courtsItem" style="position: relative;">
<label>
<input type="radio" name="sportCourts" class="sportCourts" checked="checked"><span id="courtsItem{{c}}" class="sportsCourtsTxt">{{c}}</span>
</label>
</li>
{% else %}
<li class="courtsItem" style="position: relative;">
<label>
<input type="radio" name="sportCourts" class="sportCourts"><span id="courtsItem{{c}}" class="sportsCourtsTxt">{{c}}</span>
</label>
</li>
{% endif %}
{% endfor %}
</div>
</ul>
<script>
window.onload = function() {
var courts = $('input[name="sportCourts"]').each(function(){
document.getElementById("monthTxt").innerHTML += $(this).val();//test if working
});
});
</script>
#sportCourtsRow
{
position: fixed;
margin-top: 28vh;
height: 6vh;
width: 70%;
margin-left: 15vw;
background: transparent;
overflow-y: hidden;
overflow-x: scroll;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
text-indent: -5vw;
}
#sportCourtsRow::-webkit-scrollbar
{
display: none;
}
.sportsCourtsTxt
{
font-family: 'alef';
font-size: 2.75vh;
font-weight: 700;
margin-top: 1vh;
margin-right: 100vw;
text-align: center;
}
您的单选按钮的值是正确的。使用
$(this).siblings()[0].innerText;
而不是
$(this).val();
原来我忘记给输入添加值了。
这样就解决了。
Lajos Arpad 指出了另一种有效的解决方案。
感谢大家的帮助!
我正在尝试访问单选按钮值,但我得到的只是“打开”。 我试过 JQuery 和 JS,都给了我这个结果。 我的输入内部有一个跨度,当我得到输入的 val() 时,它会给我“打开”。 当尝试访问输入内部的跨度时,它不会显示任何内容。
我的代码:
<ul id="sportCourtsRow" tabindex=44>
<div id="sportCourtsRowIn" style="margin-left: 31vw; margin-top: 0.8vh;">
{% for c in courtsB %}
{% if loop.index == 1 %}
<li class="courtsItem" style="position: relative;">
<label>
<input type="radio" name="sportCourts" class="sportCourts" checked="checked"><span id="courtsItem{{c}}" class="sportsCourtsTxt">{{c}}</span>
</label>
</li>
{% else %}
<li class="courtsItem" style="position: relative;">
<label>
<input type="radio" name="sportCourts" class="sportCourts"><span id="courtsItem{{c}}" class="sportsCourtsTxt">{{c}}</span>
</label>
</li>
{% endif %}
{% endfor %}
</div>
</ul>
<script>
window.onload = function() {
var courts = $('input[name="sportCourts"]').each(function(){
document.getElementById("monthTxt").innerHTML += $(this).val();//test if working
});
});
</script>
#sportCourtsRow
{
position: fixed;
margin-top: 28vh;
height: 6vh;
width: 70%;
margin-left: 15vw;
background: transparent;
overflow-y: hidden;
overflow-x: scroll;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
text-indent: -5vw;
}
#sportCourtsRow::-webkit-scrollbar
{
display: none;
}
.sportsCourtsTxt
{
font-family: 'alef';
font-size: 2.75vh;
font-weight: 700;
margin-top: 1vh;
margin-right: 100vw;
text-align: center;
}
您的单选按钮的值是正确的。使用
$(this).siblings()[0].innerText;
而不是
$(this).val();
原来我忘记给输入添加值了。 这样就解决了。 Lajos Arpad 指出了另一种有效的解决方案。 感谢大家的帮助!