繁体   English   中英

html表单-从选定的单选按钮获取价值

[英]html form - getting value from selected radio button

我已经创建了一个表单,并且希望获取用户输入的数据。 到目前为止,我拥有的javascript提取了所有数据。 我在拉选单选按钮的数据时遇到问题。 我阅读了一些文章,他们说“名称”必须相同,但这不起作用,如果我给它指定唯一的“ ID”,则选择一个或另一个单选按钮将不起作用。 也不能使用jQuery

js

var myNodeList = document.getElementsByName('cf');
var myArray = []; // empty Array
for (var i = 0; i < myNodeList.length; i++) {
    if(i<4)
        for ( i; i < 3; i++) {
            var self = myNodeList[i].value;
            myArray.push(self);
        }
    else if(i==4)
        myArray.push(document.getElementById('status').value);
    else if(i==5)
        myArray.push(document.getElementById('subscribe').value);
    else if(i==6)
        myArray.push(document.getElementsByName('support')[i]);
    else if(i==7)
        for ( i; i < myNodeList.length; i++) {
            var self = myNodeList[i].value;
            myArray.push(self);
        }
}
console.log(myArray)

html

 <!DOCTYPE html>
<html>
<head>
  <title>Contact Me</title>
  <link rel="stylesheet" type="text/css" href="contactform_Lab8.css">
</head>

<body>

<form id="contactus">
    <fieldset>
        <label for="name">Name:</label>
            <input id="name" type="text" name="cf" autofocus required>
        <label for="email">Email:</label>
            <input id="email" type="email" name="cf" required>
        <label for="phone">Phone:</label>
            <input id="phone" type="tel" name="cf" required>
        <label for="status">Status:         
            <select id="status" name="cf" required>
                <option value="client">Client</option>
                <option value="partner">Partner</option>
                <option value="vendor">Vendor</option>
            </select>
        </label>
        <label for="subscribe">
            <input id="subscribe" type="checkbox" name="cf" value="check" checked> 
        Send me your newsletter</label>
        <label for="sales">
            <label for="support">
                <input id="sales" type="radio" name="slsSupport" value="sales" checked>Sales
                <input id="support" type="radio" name="slsSupport" value="support">Support
            </label>
        </label>
        <label for="msg">Message:</label>
            <textarea id="msg" name="cf" rows="10" cols="30" required></textarea>
        </fieldset>
        <fieldset>
        <button type="submit">Send</button>
        <button type="reset">Reset</button>
        </fieldset>
</form>
<script src="contactform_Lab8.js"></script>

</body>

</html>

ID名称是唯一的,不应在同一页面中使用两次。 您可以从仅选中的单选按钮获取值,如下所示:

var inputs = document.getElementsByTagName('input');

for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type.toLowerCase() == 'radio') {
        if (inputs[i].checked){
            alert('Checked radio buttons value is:' + inputs[i].value);
        }
    }
}

在jQuery中

$("input[name=slsSupport]:checked").val();

在普通的js中,您需要查找所有单选按钮,为每个单选按钮指定一个ID,然后逐个选择它们:

function GetSelected() {
   for(var i=0;i<2;i++) {
       var element = document.getElementById('radio'+i);
       if (element.checked === true)
          return element
   }
}

ID在所有HTML文档中必须是唯一的。 要对输入(例如单选)进行分组,您必须给它们起相同的名称(而不是ID)。

要使用JQuery查找值,请看此问题,而对于纯JS解决方案,请看另一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM