我有一个问题是检测选项选择而不是使用getElementById我想使用getElementByValue。它存在吗? 这是我的代码
<script type="text/javascript">
var total;
function oneway(){
document.getElementById("return_date").style.visibility = "hidden";
document.getElementById("return_time").style.visibility = "hidden";
}
function return_way(){
document.getElementById("return_date").style.visibility = "visible";
document.getElementById("return_time").style.visibility = "visible";
}
function state_price(){
var way=document.getElementById("direction").value;
var placefrom = document.getElementById("state_from").value;
var placeto = document.getElementById("state_to").value;
if (direction == "oneway"){
if ((placefrom=="Batu Pahat" && placeto=="Alor Setar") ||(placefrom =="Alor Setar" && placeto=="Batu Pahat")){
total=55.00;
document.booking.total_price.value = total;
}else if ((placefrom=="Batu Pahat" && placeto=="Bachok")||(placefrom=="Bachok" && placeto=="Batu Pahat"))
{
total=60.00;
document.booking.total_price.value = total;
}else if ((placefrom=="Batu Pahat" && placeto=="A Famosa") || (placefrom=="A Famosa" && placeto=="Batu Pahat"))
{
total=65.50;
document.booking.total_price.value = total;
}else if ((placefrom=="Batu Pahat" && placeto=="Bahau")||(placefrom=="Bahau" && placeto=="Batu Pahat"))
{
total=70.00;
document.booking.total_price.value = total;
}else if ((placefrom=="Batu Pahat" && placeto=="Bentong") ||(placefrom=="Bentong" && placeto=="Batu Pahat"))
{
total=75.50;
document.booking.total_price.value = total;
}else if ((placefrom=="Batu Pahat" && placeto=="Kubang Kerian") ||(placefrom=="Kubang Kerian" && placeto=="Batu Pahat"))
{
total=80.00;
document.booking.total_price.value = total;
}
else
{
document.booking.txttotal.value = "Fail";
window.alert("Please enter a different destination");
}
}
else
{
///something else
}
}
</script>
这是我的html编码的一部分
<tr >
<td>Travel Direction:</td>
<td >
<input type="radio" name ="direction" value = "oneway" onclick = "oneway()"/>One Way
<input type="radio" name ="direction" value = "return" onclick = "return_way()"/>Return
</td>
</tr>
我不想使用这个名字,因为我在我的php编码中使用它。所以我不想使用它。我有什么办法可以像上面提到的那样使用我的javascript(getElementByValue) ?提前谢谢
答案 0 :(得分:7)
我想使用getElementByValue。它存在吗?
没有。您可以编写自己的(循环遍历文档中的所有元素并对其进行测试),或者,如果您关心初始值而不是当前值,则可以将querySelector
/ querySelectorAll
与attribute selector一起使用。
由于您使用的单选按钮在正常情况下不会更改值(仅检查状态),因此应该可以正常工作。
document.querySelector('input[value=oneway]');
答案 1 :(得分:1)
这里的一个问题是你使用的是getElementById并且你正在使用这个名称,这是行不通的。
我个人会检查是否检查了第一个单选按钮[单向]。
var isOneWay = document.forms[0].direction[0].checked;
在if语句中,您可以使用布尔值来确定逻辑。
答案 2 :(得分:1)
如果您无法设置id属性,则可以应用CSS类并使用:
document.getElementsByClassName
document.getElementsByClassName(需要IE 9.0或更高版本)
或者您可以遍历整个DOM检查value属性。但是如果没有使用jQuery或者类似的话,这会很慢并且很容易出错。
编辑: Quentin的答案更好,document.querySelector适用于IE8或更高版本,你不需要创建CSS类。
答案 3 :(得分:-2)
使用jQuery它有一个值选择器,例如:$('input [“value = your-value”]')