我正在创建一个转换表,要求用户输入两个数字,例如5
和9
,这将生成一个数字5到9的表格,将表格从英里转换为公里,或公里到英里。我创建了两个单选按钮,一个是英里到几公里,另一个是公里到几米,但是当我键入两个数字,例如2
和5
并点击转换它仍会显示结果,但是我想要它在单击其中一个单选按钮之前没有任何反应。
<html>
<head>
<script>
function conversion(n)
{
<!--if(n<=1) return 1;-->
return n/0.62137;
}
function conversionTable(rangeStart, rangeEnd)
{
divStr="<table border=1><tr><td>Miles</td><td>Kilometres</td></tr>";
for(i=rangeStart;i<=rangeEnd;i++)
divStr+="<tr><td>" + i + "</td><td>" + conversion(i) + "</td></tr>";
document.getElementById("divResult").innerHTML=divStr;
}
function getnputValue()
{
return document.getElementById("rangeTxt").value;
}
function check(){
var radios = document.getElementsByName("choice");
for (var i = 0, len = radios.length; i < len; i++) {
if (radios[i].checked) {
return true;
}
}
return false;
}
function atLeastOneRadio() {
return ($('input[type=radio]:checked').size() > 0);
}
</script>
</head>
<body>
<p>
Start : <input type=textbox id=rangeTxt value=""/>
Finish : <input type=textbox id=rangeTxt2 value=""/>
<input type=radio name="convert" id="mtokm" value ="Miles to Kilometre"/> Miles to Kilometre
<input type=radio name="convert" id="kmtom" value ="Kilometre to Miles"/> Kilometre to Miles
<br>
<br>
<button onClick="conversionTable(getnputValue(), document.getElementById('rangeTxt2').value)">Convert</button>
</p>
<div id="divResult">
</div>
</body>
</html>
答案 0 :(得分:2)
您的原始代码非常接近,只需要处理两件事。
首先,您要将$('input[type=radio]:checked').size()
更改为$('input[type=radio]:checked').length
。然后在conversionTable()
中添加if语句,以确保检查无线电。
其次,传递给conversionTable()
的文本输入值将作为字符串传递,而不是整数。您可以使用parseInt()
将它们转换为整数值。
这样的事情应该有效:
添加parseInt()
的一个小改动。您可以考虑删除函数参数,而不是获取函数内的表单值。它可能会稍微清理一下代码。
<button onClick="conversionTable(getnputValue(),parseInt(document.getElementById('rangeTxt2').value))">Convert</button>
function conversion(n) {
<!--if(n<=1) return 1;-->
return n/0.62137;
}
function conversionTable(rangeStart, rangeEnd) {
if(atLeastOneRadio()) {
divStr="<table border=1><tr><td>Miles</td><td>Kilometres</td></tr>";
for(i=rangeStart;i<=rangeEnd;i++) {
divStr+="<tr><td>" + i + "</td><td>" + conversion(i) + "</td></tr>";
}
document.getElementById("divResult").innerHTML=divStr;
}
}
function getnputValue() {
return parseInt(document.getElementById("rangeTxt").value);
}
function atLeastOneRadio() {
return ($('input[type=radio]:checked').length > 0);
}
您可以在此处看到它:https://jsfiddle.net/oknh926a/
希望有所帮助!