我有一个表单,其中包含从PHP查询预先填充的一些字段值。我试图通过在现有值中添加$ 2.00来更改AMOUNT字段的值,如果在字段“os0”中进行的选择在所选值中的任何位置包含“XX”。我无法正确使用javascript代码使其工作,我认为我使用DOM错误但不确定。无论为“os0”字段选择的选项/值,远程URL仅接收提交时PHP回显设置的值。请帮忙。
<form method="post" action="remote-url" name="ppal">
<input type="hidden" name="amount" value="<?=$res[0]?>">
<input type="hidden" name="SKU" value="<?=$res[1]?>">
<select id="os0" name="on0" onChange="setval()">
<option value="Small">Small</option>
<option value="Medium">Medium/option>
<option value="Large">Large</option>
<option value="XL">X-Large</option>
<option value="XXL">XXL</option>
<option value="XXXL">XXXL</option>
<input name="submit" type="submit" value="submit">
</form>
我的Javascript:
<script type="text/javascript">
function setval()
{
if (document.forms["ppal"].os0.value.indexOf("XX") > -1) {document.getElementById("amount") = document.getElementById("amount")+2};
}
</script>
答案 0 :(得分:0)
脚本存在一些问题。首先,它调用document.getElementById("amount")
,但没有ID为“amount”的元素。您可能想要更改此内容:
<input type="hidden" name="amount" value="<?=$res[0]?>">
到此:
<input type="hidden" id="amount" name="amount" value="<?=$res[0]?>">
其次,当脚本调用document.getElementById("amount")
时,它会获取对input元素的引用,而不是用户在元素中键入的值。您需要使用input元素的.value
属性来获取用户键入的内容。有关/value
属性的详细信息,请参阅http://www.w3schools.com/jsref/prop_text_value.asp。
请记住,value属性是一个字符串,而不是数字,因此在进行算术运算之前,您还必须使用parseInt()
之类的内容进行转换。