若输入两个输入标记有相同的值,那个么只给alert-javascript无jquery
这是我现在想要的html,如果任何两个具有相同值的单选按钮,如=“test2”或“test1”向我发出警报 我试图在循环中获得价值若输入两个输入标记有相同的值,那个么只给alert-javascript无jquery,javascript,Javascript,这是我现在想要的html,如果任何两个具有相同值的单选按钮,如=“test2”或“test1”向我发出警报 我试图在循环中获得价值 <div class="newfile" > <ul> <li><input value="test1" type="radio" name="abc" onclick="getResults()" /></li> <li><input value=
<div class="newfile" >
<ul>
<li><input value="test1" type="radio" name="abc" onclick="getResults()" /></li>
<li><input value="test2" type="radio" name ="abc" onclick="getResults()" /></li>
<li><input value="test1" type="radio" name ="xyz" onclick="getResults()"/></li>
<li><input value="test2" type="radio" name="xyz" onclick="getResults()" /></li>
</ul>
</div>
函数getResults(){
var radios=document.getElementsByTagName(“输入”);
对于(var i=0;i
但不知道如何比较两个选中按钮的值并获得警报
如果任意两个单选按钮具有相同的值,请向我发出警报,否则将不会发生任何事情。这样如何:
<script>
function getResults() {
var radios = document.getElementsByTagName("input");
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
alert(radios[i].value);
break;
}
}
}
</script>
函数getResults(){
var radios=document.getElementsByTagName(“输入”);
var值=新数组();
对于(var i=0;i
这有帮助吗
<script type="text/javascript">
function getResults() {
var radios = document.getElementsByTagName("input");
var values = new Array();
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
var found = false; //Represents if we have a duplicate
for(var j = 0; j < values.length; j++) { //Loop through previous items
if(values[j] == radios[i].value) { //Duplicate?
found = true; // Flag it
break; //Exit 'j' loop
}
}
values[values.length] = radios[i].value; //Add value to previous items
if(!found) continue; //If there was no duplicate, continue to next item
alert(radios[i].value); //There was a duplicate, alert and return
break;
}
}
}
</script>
函数getResults(){
var radios=document.getElementsByTagName(“输入”);
var-dupDetector={};
var值;
对于(var i=0;i
感谢@meiamsome提醒我,如果
值
是内置的对象属性,那么谓词将始终为true,尽管没有重复项。要避免这种情况,请为其添加一个伪前缀。如果值是“toString”或“hasOwnProperty”或其他JavaScript对象的内置属性,该怎么办?这将对非重复项发出警报。@meiamsome输入标记的任何值都是对象而不是字符串吗?@neuron问题不在于它是对象-存储值的方式使用对象dupDetector
。由于它是一个对象,因此已定义了dupDetector['toString'],因此,如果任何无线电框的值为'toString'
,它将作为重复项发出警报。@meiamsome抱歉,我看到了。。。如果将谓词更改为dupDetector[value]==true,它会起作用吗?@neuron大多数情况下,它都会解决这个问题,但是,可能是对象的属性为true,因此,如果没有重复项,检查此项仍会发出警报。
function getResults() {
var radios = document.getElementsByTagName("input");
var dupDetector = {};
var value;
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
// value = radios[i].value; // add a prefix to avoid built-in property names
value = 'I_' + radios[i].value;
if (dupDetector[value]) {
alert(radios[i].value);
return;
}
dupDetector[value] = true;
}
}
}