javascript如果下拉选择,则设置文本框的值

javascript如果下拉选择,则设置文本框的值,javascript,Javascript,我花了一些时间到处寻找这个,但似乎无法把它全部解决 我有一个运输下拉列表,我想分离运输类型和所选金额,并将它们放在两个单独的隐藏字段中。(为了便于测试,我目前正在使用文本字段) 例如— 如果他们从第一个下拉列表中选择隔夜交货-14.00 一旦更改,我想将shippingtype的值设置为“隔夜交货”,将shipping字段的值设置为“14.00” 我已经有了位置(如果用户选择了皮卡,则会出现一个新的下拉列表,并且无论您选择什么,都会设置我的shippinglocation字段的值) 这是我到目前

我花了一些时间到处寻找这个,但似乎无法把它全部解决

我有一个运输下拉列表,我想分离运输类型和所选金额,并将它们放在两个单独的隐藏字段中。(为了便于测试,我目前正在使用文本字段)

例如— 如果他们从第一个下拉列表中选择隔夜交货-14.00 一旦更改,我想将shippingtype的值设置为“隔夜交货”,将shipping字段的值设置为“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>

功能设置shipping(objDropDown)
{
var objHidden=document.getElementById(“shipping”);
objHidden.value=objDropDown.value;
}
函数设置ShippingType(objDropDown)
{
var objHidden=document.getElementById(“shippingtype”);
objHidden.value=objDropDown.value;
}
功能设置ShippingLocation(objDropDown)
{
var objHidden=document.getElementById(“shippinglocation”);
objHidden.value=objDropDown.value;
}
功能显示条目(obj,选项值)
{
//更改时隐藏所有条目选择
document.getElementById(“拾取”).style.display=“无”;
如果(目标值=“拾取”)
{
document.getElementById(optionValue).style.display=“inline”;
}  
}

装运选择箱
运输选择 收件-不收费 UPS标准配送-3.00 隔夜送货-14.00

改善 请选择一个位置 比林斯山 利文斯顿山 迈尔斯城 科迪,怀俄明州 威斯康星州谢里登


配送(设置隐藏表单标签-贝宝配送金额)



shippingtype(设置隐藏表单标签-贝宝发送给Chris的变量)



shippinglocation(设置隐藏表单标签-贝宝发送给Chris的变量)

请格式化您发布的代码,这是可能的。正如你所说,抓住onChange事件。我会以某种方式序列化下拉元素的值。使用破折号、下划线或其他符号,然后对值执行split(),并将相应的拆分存储在相应的隐藏输入值字段中

例如,为了简洁起见,使用原型:

function changeHandler(evt) {
    var selected = evt.target[evt.target.selectedIndex];
    var values = selected.value.split("-");
    $('hidden1').value = values[0];
    $('hidden2').value = values[1];
}

请格式化您发布的代码,这是可能的。正如你所说,抓住onChange事件。我会以某种方式序列化下拉元素的值。使用破折号、下划线或其他符号,然后对值执行split(),并将相应的拆分存储在相应的隐藏输入值字段中

例如,为了简洁起见,使用原型:

function changeHandler(evt) {
    var selected = evt.target[evt.target.selectedIndex];
    var values = selected.value.split("-");
    $('hidden1').value = values[0];
    $('hidden2').value = values[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>

功能设置shipping(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=类型;
}
函数设置ShippingType(objDropDown)
{
var objHidden=document.getElementById(“shippingtype”);
var type=objDropDown.options[objDropDown.selectedIndex].text.substring(0,objDropDown.options[objDropDown.selectedIndex].text.indexOf('-')-1);
objHidden.value=类型;
}
功能设置ShippingLocation(objDropDown)
{
var objHidden=document.getElementById(“shippinglocation”);
objHidden.value=objDropDown.value;
}
功能显示条目(obj,选项值)
{
//更改时隐藏所有条目选择
document.getElementById(“拾取”).style.display=“无”;
如果(目标值=“拾取”)
{
document.getElementById(optionValue).style.display=“inline”;
}  
}

装运选择箱
运输选择 收件-不收费 UPS标准配送-3.00 隔夜送货-14.00

改善 请选择一个位置 比林斯山 利文斯顿山 迈尔斯城 科迪,怀俄明州 威斯康星州谢里登


配送(设置隐藏表单标签-贝宝配送金额)



shippingtype(设置隐藏表单标签-贝宝发送给Chris的变量)



shippinglocation(设置隐藏表单标签-贝宝发送给Chris的变量)

我冒昧地将您的方法名称从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>

功能设置shipping(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=类型;
}
函数设置ShippingType(objDropDown)
{
var objHidden=document.getElementById(“shippingtype”);
var type=objDropDown.options[objDropDown.selectedIndex].text.substring(0,objDropDown.options[objDropDown.selectedIndex].text.indexOf('-')-1);
objHidden.value=类型;
}
功能设置ShippingLocation(objDropDown)
{
var objHidden=document.getElementById(“shippinglocation”);
objHidden.value=objDropDown.value;
}
功能显示条目(obj,选项值)
{
//更改时隐藏所有条目选择
document.getElementById(“拾取”).style.display=“无”;
如果(目标值=“拾取”)
{
document.getElementById(optionValue).style.display=“inline”;
}  
}

装运选择箱
运输选择 收件-不收费 UPS标准配送-3.00 接近