使用JavaScript获取Checked Radio Buttons

时间:2013-06-26 09:28:01

标签: c# javascript html function windows-runtime

所以我正在尝试构建一个包含WebView的win 8应用程序。 WebView包含下面的HTML代码(+ JavaScript)。

<!DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' >

<script type='text/javascript'>
function get_radio_value()
{
  for (var i=0; i < document.myForm.frage1.length; i++)
  {
    if (document.orderform.frage1[i].checked)
    {
          var rad_val = document.myForm.frage1[i].value;
          return rad_val;
    }
  }
}
</script>

    <title>Kundenfragebogen</title>
</head>

<body>
  <h1>Kundenfragebogen</h1>
<div id='myDiv'>Hello</div>
<form name='myForm' action=''>
<table border='2'>
  <tr>
    <td></td>
    <td>sehr gut</td>
    <td>gut</td>
    <td>schlecht</td>
  </tr>
  <tr>
    <td>Wie geht es Ihnen?</td>
    <td><input type='radio' name="frage1" value='1'/>Mir ging es noch nie besser!</td>
    <td><input type='radio' name="frage1" value='2'/>Es geht mir so wie immer.</td>
    <td><input type='radio' name="frage1" value='3'/>Heute geht einfach gar nichts…</td>
  </tr>
   <tr>
    <td>Können Sie Auto fahren?</td>
    <td><input type='radio' name="frage2" value='1'/>Ja</td>
    <td></td>
    <td><input type='radio' name="frage2" value='3'/>Nein</td>
  </tr>
  <tr>
    <td>Möchten Sie unseren Newsletter abonnieren?</td>
    <td><input type='radio' name="frage3" value='1'/>Ja</td>
    <td></td>
    <td></td>
  </tr>
</table>

<input type='button' value='Formular absenden' onclick="return get_radio_value()"/>
</form>
</body>
</html>

因此html包含一些单选按钮和一个按钮。我在2年前使用过JavaScript(只是一点点),所以我真的不知道如何编写确切的代码。我在互联网上找到了一些东西,但它没有做我想要的。我希望得到以下内容:

用户可以查看RadioButtons。当用户单击Button时,JavaScript函数应该返回所有选中的单选按钮(我只需要知道检查了哪个RadioButton)。 由于我知道Windows 8应用程序中RadioButtons的名称,我可以执行以下操作:

var object = WebView.InvokeScript("JavaScriptFunctionNAME", NameOfRadiobutton);

因此,WebView会调用脚本,并且应该返回RadioButton的VALUE,并对其进行检查。

“JavaScriptFunctionNAME”= Javascript中函数的名称

NameOfRadiobutton = RadioButton的名称作为参数(例如“frage1”)。

目前我正在返回radiobutton的值,该值在RadioGroup“frage1”中检查。如何通过它的参数检查每个RadioButton?我的意思是我有一个参数“frage1”并返回已检查的RadioButton的值。在此之后,我再次使用参数“frage2”调用该函数并返回已检查的RadioButtons值。任何人都可以帮我解决JavaScript功能吗?

2 个答案:

答案 0 :(得分:2)

Radiobuttons按名称属性分组。您可以使用document.getElementsByName获取radiobuttons的集合,并查看每个的检查状态,例如: -

function FindChecked() {
    var elements = document.getElementsByName("frage1")
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].checked) {
            return elements[i].value;
        }
    }
}

将返回其组内已检查的radiobutton的值。

jsfiddle example

编辑:要将您的C#代码中的组名传递给此功能,您可以: -

public class YourClass
{
   public string GroupName { get { return "frage1"; } }
}

然后javascript函数将成为:

function FindChecked() {
     var elements = document.getElementsByName('<%= this.GroupName %>')
     for (var i = 0; i < elements.length; i++) {
        if (elements[i].checked) {
            return elements[i].value;
        }
    }
}

答案 1 :(得分:1)

试试这个,这将返回单选按钮的选中名称

<script type='text/javascript'>
  function get_radio_value()
    {
       var nameArry = [];
        var allInputs = document.myForm.getElementsByTagName('input');
       for (i = 0; i < allInputs.length; i++) {
           if (allInputs[i].type == 'radio' && allInputs[i].checked ) {
             nameArry.push(allInputs[i].name);
           }
       }
       alert(nameArry)
    }
</script>