C# 使用FOR属性从与radiobutton关联的html标签获取值
一个带有单选按钮的html表单,它与如下所示的html标签关联C# 使用FOR属性从与radiobutton关联的html标签获取值,c#,javascript,html,asp.net,for-attribute,C#,Javascript,Html,Asp.net,For Attribute,一个带有单选按钮的html表单,它与如下所示的html标签关联 <form action="demo_form.aspx"> <label for="male">Male</label> <input type="radio" name="sex" id="male" value="male"><br> <label for="female">Female</label> <input ty
<form action="demo_form.aspx">
<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="sex" id="female" value="female"><br>
<input type="submit" value="Submit">
</form>
男性
女性
当用户使用java脚本或服务器端脚本(ASP.Net-C#)单击单选按钮时,如何获取值?还有哪一个更适合使用。请尝试以下方法:
1.添加到每个输入标记属性class=“sex”。
2.使用jquery可以执行以下操作:
$('.sex').click(function(){
alert($(this).val());
})
请尝试以下脚本:
window.onload = function () {
var btnSubmit = document.getElementById('btn-submit');
btnSubmit.onclick = function (e) {
e.preventDefault();
var radioInputs = document.querySelectorAll('#myform input[type="radio"][name="sex"]');
for (var i = 0; i < radioInputs.length; i++) {
if (radioInputs[i].checked)
{
var value = getlabelforValue(radioInputs[i]);
alert(value);
}
}
document.getElementById("myform").submit();
};
};
function getlabelforValue(inputname) {
var labelElements = document.querySelectorAll('#myform label');
for (var i = 0; labelElements[i]; i++) {
console.log(labelElements[i]);
if (labelElements[i].getAttribute('for') == inputname.getAttribute('id')) {
return labelElements[i].innerText || labelElements[i].textContent;
}
}
return null;
}
window.onload=函数(){
var btnSubmit=document.getElementById('btn-submit');
btnSubmit.onclick=函数(e){
e、 预防默认值();
var radionputs=document.querySelectorAll(“#myform input[type=“radio”][name=“sex”]”);
对于(变量i=0;i
Html:
男性
女性
这里是
或
在代码隐藏中,您可以这样做以获得价值
string radioValue=string.Format(“{0}”,Request.Form['sex'])代码>根据@bios给出的脚本重新编写。这是脚本的较短版本
window.onload = function () {
var btnSubmit = document.getElementById('btn-submit');
btnSubmit.onclick = function (e) {
e.preventDefault();
var radioInputs = document.querySelectorAll('#myform input[type="radio"][name="sex"]');
var labelElements = document.querySelectorAll('#myform label');
for (var i=0; i<radioInputs.length; i++){
for (var j = 0; labelElements[j]; j++) {
if (radioInputs[i].checked)
{
var rdval = radioInputs[i].getAttribute('id');
var lblval = labelElements[j].getAttribute('for');
if(rdval == lblval){
var val = labelElements[j].textContent;
alert(val);
}
}
}
}
};
};
window.onload=函数(){
var btnSubmit=document.getElementById('btn-submit');
btnSubmit.onclick=函数(e){
e、 预防默认值();
var radionputs=document.querySelectorAll(“#myform input[type=“radio”][name=“sex”]”);
var labelements=document.querySelectorAll(“#myform label”);
对于(var i=0;我是否使用jquery?我正在尝试使用javascript,但jquery也可以。值
意味着?单选值或表单元素值其单选值。如果用户选择任何选项并提交,我应该能够获得所选的单选值。这可以用纯javascript完成。我会发布我需要的标签值。你可以告诉我们ed radio name以获取值是否可以获取label value.label.innerHTML正在工作,但label.innerText不工作不知道为什么?@SDKLiveinnerText
是非标准的,它与textContent
有很大不同,因为第一个正在进行漂亮的打印(例如,
转换为新行),而第二个-不是。
window.onload = function () {
var btnSubmit = document.getElementById('btn-submit');
btnSubmit.onclick = function (e) {
e.preventDefault();
var radioInputs = document.querySelectorAll('#myform input[type="radio"][name="sex"]');
var labelElements = document.querySelectorAll('#myform label');
for (var i=0; i<radioInputs.length; i++){
for (var j = 0; labelElements[j]; j++) {
if (radioInputs[i].checked)
{
var rdval = radioInputs[i].getAttribute('id');
var lblval = labelElements[j].getAttribute('for');
if(rdval == lblval){
var val = labelElements[j].textContent;
alert(val);
}
}
}
}
};
};
<form id="myform" action="demo_form.aspx">
<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male" /><br />
<label for="female">Female</label>
<input type="radio" name="sex" id="female" value="female" /><br />
<input type="submit" id="btn-submit" value="Submit">
</form>