美好的一天。
我需要将输入文本框的内容复制到多个其他文本框中。
问题在于有一个下拉列表必须确定这一点。
流程:用户将进入"商品"进入" Commodity"文本框。
在此之后,他们将从下拉列表中选择"交付地点"的数量。如果他们选择" 1&#34 ;;文本框" Commodity1"将具有与主要"商品"相同的内容。文本框。
如果他们选择" 2" as" DeliveryPlaces",&& 34; Commodity1" &安培; " Commodity2"将内容输入" Commodity"。这个过程应该一直持续到" 5" for" DeliveryPlaces"。
我希望这样做的原因是我们的大多数客户只会订购一种商品,即使它会被运送到多个地方;
function copy(){
if (document.getElementById("DeliveryPlaces").value = "1")
{
document.getElementById("Commodity1").value=document.getElementById("Commodity").value;
}
else if (document.getElementById("DeliveryPlaces").value = "2")
{
document.getElementById("Commodity1").value=document.getElementById("Commodity").value;
document.getElementById("Commodity2").value=document.getElementById("Commodity").value;
}
else if (document.getElementById("DeliveryPlaces").value = "3")
{
document.getElementById("Commodity1").value=document.getElementById("Commodity").value;
document.getElementById("Commodity2").value=document.getElementById("Commodity").value;
document.getElementById("Commodity3").value=document.getElementById("Commodity").value;
}
else if (document.getElementById("DeliveryPlaces").value = "4")
{
document.getElementById("Commodity1").value=document.getElementById("Commodity").value;
document.getElementById("Commodity2").value=document.getElementById("Commodity").value;
document.getElementById("Commodity3").value=document.getElementById("Commodity").value;
document.getElementById("Commodity4").value=document.getElementById("Commodity").value;
}
else if (document.getElementById("DeliveryPlaces").value = "5")
{
document.getElementById("Commodity1").value=document.getElementById("Commodity").value;
document.getElementById("Commodity2").value=document.getElementById("Commodity").value;
document.getElementById("Commodity3").value=document.getElementById("Commodity").value;
document.getElementById("Commodity4").value=document.getElementById("Commodity").value;
document.getElementById("Commodity5").value=document.getElementById("Commodity").value;
}
else
{
document.getElementById("Commodity1").value="";
document.getElementById("Commodity2").value="";
document.getElementById("Commodity3").value="";
document.getElementById("Commodity4").value="";
document.getElementById("Commodity5").value="";
}
}

<p>
Commodity
</p><input type="textbox" id="Commodity" onkeyinput="copy();">
<p>
Commodity1
</p><input type="textbox" id="Commodity1">
<p>
Commodity2
</p><input type="textbox" id="Commodity2">
<p>
Commodity3
</p><input type="textbox" id="Commodity3">
<p>
Commodity4
</p><input type="textbox" id="Commodity4">
<p>
Commodity5
</p><input type="textbox" id="Commodity5">
<p>
Delivery Places
</p>
<select style="width:50px;" id="DeliveryPlaces">
<option value="-">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
&#13;
因此,通过自动填写,我们会为用户节省一些时间。
我设法让它工作没有 if 条件,这很简单。然而,现在,它只是填补&#34; Commodity1&#34;即使我选择了一个&#34; DeliveryPlace&#34;这不是&#34; 1&#34;。
任何帮助都将不胜感激。
答案 0 :(得分:2)
尝试使用:
var e = document.getElementById("DeliveryPlaces")
var selection = e.options[e.selectedIndex].value;
然后根据选择中的值来处理你的情况。
您当前正在选择Select元素的值而不是您实际选择的选项。
编辑:它可能是您选择时需要的文字而不是价值,但请试一试!
答案 1 :(得分:2)
切换:
if (document.getElementById("DeliveryPlaces").value = "1")
要
if (document.getElementById("DeliveryPlaces").value == "1")
代码实际上是在语句中将DeliveryPlaces切换为1
答案 2 :(得分:2)
我会这样做:
var oraConnectionString = new OracleConnectionStringBuilder(_connectionString);
using (var oraConnection = new OracleConnection(oraConnectionString.ConnectionString))
{
oraConnection.Open();
try
{
using (var command = new OracleCommand(sqlText, oraConnection))
{
command.Parameters.Clear();
command.BindByName = true;
command.Parameters.Add("node", _currentNode);
command.Parameters.Add("carrierId", CarrierId);
command.Connection.BeginTransaction();
command.ExecuteNonQuery();
command.CommandText = UtilityMethods.LoadTemplate("Resources/CreateCarrier.sql", "Carriers");
command.Parameters.Clear();
command.Parameters.Add("carrierName", CarrierName);
command.Parameters.Add("line1", Line1);
command.Parameters.Add("line2", Line2);
command.Parameters.Add("line3", Line3);
command.Parameters.Add("line4", Line4);
command.ExecuteNonQuery();
command.CommandText = UtilityMethods.LoadTemplate("Resources/GetCarrierId.sql", "Carriers");
CarrierId = Convert.ToString(command.ExecuteScalar());
if (CarrierId == null)
{
//TODO
}
command.Parameters.Clear();
command.CommandText = command.CommandText = UtilityMethods.LoadTemplate("Resources/AddCarrierToNode.sql", "Carriers");
command.Parameters.Add("node", _currentNode);
command.Parameters.Add("rank", Convert.ToInt32(Rank));
command.Parameters.Add("carrierId", Convert.ToInt32(CarrierId));
command.ExecuteNonQuery();
command.Transaction.Commit();
}
}
这样,您可以清除其他商品,当您更改到较低的交货地点时+您可以通过编辑for循环轻松添加更多商品。
答案 3 :(得分:1)
您的功能应该会收到下拉列表的编号。也就是说,如果您选择了2个副本(2),那么您可以使用for并浏览要填写的内容
for (i = item.length; i = 0; i--) {
document.getElementById("Commodity"+i).value=document.getElementById("Commodity").value;
}
for将从低到高直到达到0.这意味着如果它是5. 5,4,3,2,1它将计数并将填充你想要的所有字段。这样可以避免在结构中使用意大利面条代码。
我知道您使用的是纯JavaScript。但你可以使用jquery,它可以使工作更容易。