2009-11-14 53 views
1

我花了一些时间寻找这个,但似乎无法得到它全部解决。如果下拉选择的话,那么javascript的文本框的值设置

我有一个航运下拉,我想拆分运输类型和数量选择,并把它们放到两个单独的隐藏领域。 (我使用的文本字段,此刻更容易测试)

对于示例 - 如果他们从第一个下拉通宵递送选择 - 14.00 的OnChange我想设置我的shippingtype的值设置为“隔夜配送”和我的送货字段值“14.00”

我已经有工作的(如果用户选择皮卡,新的下拉出现,无论你选择也将我的shippinglocation字段的值)

这里的位置就是我到目前为止...

<html> 
<head> 

<script type="text/javascript"> 
function SetShipping (objDropDown) 
{ 
    var objHidden = document.getElementById("shipping"); 
    objHidden.value = objDropDown.value; 
} 


function setShippingtype (objDropDown) 
{ 
    var objHidden = document.getElementById("shippingtype"); 
    objHidden.value = objDropDown.value; 
} 


function setShippinglocation (objDropDown) 
{ 
    var objHidden = document.getElementById("shippinglocation"); 
    objHidden.value = objDropDown.value; 
} 

function showEntry(obj,optionValue) 
{ 
//hide all entry selections onchange 
document.getElementById("pickup").style.display="none"; 
if(obj.value=="pickup") 
{ 
    document.getElementById(optionValue).style.display="inline"; 
} 
} 



</script> 
</head> 
<body> 
<form id="myform"> 

    <br /> 
    shippingselectbox 
    <br /> 
    <select onchange="showEntry(this,this.value);setShippingtype(this);" name="shippingselectbox"> 
     <option value="">Shipping Options</option> 
     <option value="pickup">Pickup - no charge</option> 
     <option value="UPS">UPS Standard Shipping - 3.00</option> 
     <option value="Overnight">Overnight Delivery - 14.00</option> 

    </select> 
    <br /> 
    <br /> 
    pickup 
    <span id="pickup" style="display:none;"> 
<select name="pickup" onchange="setShippinglocation(this)"> 
     <option>Please Choose a Location</option> 
     <option value="Billings">Billings, MT</option> 
     <option value="Livingston">Livingston, MT</option> 
     <option value="Miles City">Miles City, MT</option> 
     <option value="Cody">Cody, WY</option> 
     <option value="Sheridan">Sheridan, WY</option> 
    </select> 
    </span> 


    <br /> 
    <br /> 
<br /> 
shipping (set hidden form tag - shipping amount for paypal)<br /> 
    <input name="shipping" type="text" value=""/> 

    <br /> 
    <br /> 
<br /> 
shippingtype (set hidden form tag - variable for paypal to send to Chris)<br /> 
    <input name="shippingtype" type="text" value=""/> 
    <br /> 
    <br /> 

    <br /> 

shippinglocation (set hidden form tag - variable for paypal to send to Chris)<br /> 
    <input name="shippinglocation" id="shippinglocation" type="text" value=""/> 

</form> 
</body> 
</html> 

回答

0

请格式化您发布的代码,这是可能的。就像你说的发生onChange事件一样。我会以某种方式序列化下拉元素的值。短划线或下划线等,然后对该值执行split()并将适当的分割存储在适当的隐藏输入值字段中。

例如使用原型为简洁:

​​3210
1

我改变了你的方法名的自由从SetShipping到setShipping保持恒定你的命名约定。坦率地说,我不能重新格式化,但我测试过,所以玩得开心。

<html> 
<head> 

<script type="text/javascript"> 
function setShipping (objDropDown) 
{ 
    var objHidden = document.getElementById("shipping"); 
    var type = objDropDown.options[objDropDown.selectedIndex].text.substring(objDropDown.options[objDropDown.selectedIndex].text.indexOf('-')+2, objDropDown.options[objDropDown.selectedIndex].text.length); 
    objHidden.value = type; 
} 


function setShippingtype (objDropDown) 
{ 
    var objHidden = document.getElementById("shippingtype"); 
    var type = objDropDown.options[objDropDown.selectedIndex].text.substring(0, objDropDown.options[objDropDown.selectedIndex].text.indexOf('-')-1); 
    objHidden.value = type; 
} 


function setShippinglocation (objDropDown) 
{ 
    var objHidden = document.getElementById("shippinglocation"); 
    objHidden.value = objDropDown.value; 
} 

function showEntry(obj,optionValue) 
{ 
    //hide all entry selections onchange 
    document.getElementById("pickup").style.display="none"; 
    if(obj.value=="pickup") 
    { 
     document.getElementById(optionValue).style.display="inline"; 
    } 
} 
</script> 
</head> 
<body> 
<form id="myform"> 

<br /> 
shippingselectbox 
<br /> 
<select onchange="showEntry(this,this.value);setShippingtype(this);setShipping(this);" name="shippingselectbox"> 
    <option value="">Shipping Options</option> 
    <option value="pickup">Pickup - no charge</option> 
    <option value="UPS">UPS Standard Shipping - 3.00</option> 
    <option value="Overnight">Overnight Delivery - 14.00</option> 
</select> 
<br /> 
<br /> 
pickup 
<span id="pickup" style="display:none;"> 
<select name="pickup" onchange="setShippinglocation(this)"> 
    <option>Please Choose a Location</option> 
    <option value="Billings">Billings, MT</option> 
    <option value="Livingston">Livingston, MT</option> 
    <option value="Miles City">Miles City, MT</option> 
    <option value="Cody">Cody, WY</option> 
    <option value="Sheridan">Sheridan, WY</option> 
</select> 
</span> 
<br /> 
<br /> 
<br /> 
shipping (set hidden form tag - shipping amount for paypal)<br /> 
<input name="shipping" id="shipping" type="text" value=""/> 
<br /> 
<br /> 
<br /> 
shippingtype (set hidden form tag - variable for paypal to send to Chris)<br /> 
<input name="shippingtype" id="shippingtype" type="text" value=""/> 
<br /> 
<br /> 
<br /> 
shippinglocation (set hidden form tag - variable for paypal to send to Chris)<br /> 
<input name="shippinglocation" id="shippinglocation" type="text" value=""/> 
</form> 
</body> 
</html> 
相关问题