C# 使用FOR属性从与radiobutton关联的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

一个带有单选按钮的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 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不工作不知道为什么?@SDKLive
innerText
是非标准的,它与
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>