【问题标题】:How to update input fields with dataset values?如何使用数据集值更新输入字段?
【发布时间】:2018-07-11 00:41:31
【问题描述】:

我无法弄清楚我错过了什么......我正在尝试执行之前已经完成的任务(更改 <input> 上的值 <select> 更改),但我看不到我的代码失败的地方。

然后我从一个单独的基于 woocommerce 的命令创建我的下拉菜单,在该命令中我使用 datasets 来存储值;我想在两个关联的输入中使用这些值。

echo '<p><select id="product" name="product" onchange="change_details(this.value)">';
    echo '<option>-- Select SKU--</option>';
while ( $loop->have_posts() ) : $loop->the_post();
  global $product;
    $sku = $product->get_sku();
    echo '<option value=' . $sku . ' data-sales=' . $results[$sku]['sales'] .' data-token=' .$results[$sku]['token'] . '>' . $sku . ' </option>';
  endwhile;
echo '</select>'; 

在这里我想更新两个输入字段以具有这些 salestoken 值:

echo '<p><input type="text" placeholder="sales" id="sales" name="sales" size="20" /></p>'; 
echo '<p><input type="text" placeholder="e.g. token" id="token" name="token" size="20" /></p>'; 

最后,我的 onchange 函数的 javascript;

function change_details(){
        document.getElementById("sales").dataset.sales;
        document.getElementById("token").dataset.token;
}

【问题讨论】:

  • Java 不是 javascript。成功的最后一点是什么?换句话说,最早的故障点在哪里?您正在混合过程和面向对象的语法。
  • @mickmackusa 我已经编辑了我的问题以反映您的 java 声明。我相信最早的故障点位于我存储数据(在数据销售或数据令牌中)或我的 javascript 的下拉菜单中。我确实用document.getElementById("sales").value=test; 进行了测试,它会起作用,但是在更改为我的数组值后,它似乎搞砸了

标签: javascript forms input drop-down-menu dataset


【解决方案1】:

StackOverflow javascript sn-p builder 无法正常工作...

function change_details(obj){
  document.getElementById("sales").value = obj.options[obj.selectedIndex].dataset.sales;
  document.getElementById("token").value = obj.options[obj.selectedIndex].dataset.token;
}
<select onchange="change_details(this);">
  <option value="sku1" data-sales="sku_sales1" data-token="sku_token1">skuA</option>
  <option value="sku2" data-sales="sku_sales2" data-token="sku_token2">skuB</option>
  <option value="sku3" data-sales="sku_sales3" data-token="sku_token3">skuC</option>
  <option value="sku4" data-sales="sku_sales4" data-token="sku_token4">skuD</option>
</select>

<input type="text" placeholder="sales" id="sales" name="sales" size="20" />

<input type="text" placeholder="e.g. token" id="token" name="token" size="20" />

将选择元素对象传递给您的函数,然后使用纯 javascript 隔离所选选项,然后使用数据集值设置输入值。

https://jsfiddle.net/7b51f38t/12/

您的 javascript 函数实际上并没有“做任何事情”。

【讨论】:

  • 啊,伙计,这就像一个魅力。我的 javascript 值未设置。谢谢你把我从另一个不眠之夜中拯救出来!
猜你喜欢
  • 2021-03-16
  • 2015-07-13
  • 2018-11-24
  • 2020-04-07
  • 2019-07-20
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多