javascript – 使用用户输入更改或更新复选框值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用用户输入更改或更新复选框值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4901字,纯文字阅读大概需要8分钟。
内容图文
![javascript – 使用用户输入更改或更新复选框值](/upload/InfoBanner/zyjiaocheng/775/94b6e696833e43df959e2fcb53eb1966.jpg)
我目前正在开发一个WordPress项目,在那里我有一个使用WooCommerce构建的网络商店,作为一个练习项目,我决定为客户提供退款系统,他们可以在那里向网站管理员发送“退款请求”接受还是否认.
退款选项卡分为3个不同的页面,在第一页上,客户通过输入她的姓名,邮政编码和订单号来确认他/她的订单,在第二页上,客户可以选择他们想要订购的产品及其数量输入数字,并检查产品的复选框和第三页只是一个确认页面,客户也可以发送消息,然后按“发送请求按钮”.按下按钮后,请求选项卡中的信息将插入到名为wp_refundrequests的自定义表中,该表用于显示管理页面上的所有请求.
我的问题是,在第二页上,客户应该选择他们想要退款的某些产品的数量,总是在我的代码中显示最大数量,而我无法理解如何制作它这样工作,它只需要用户输入的金额.
这是第二页的代码,问题是:
<div class="Etusivu">
<form action="" method="post" style="border:0px solid #ccc">
<legend><b>Product refund</b></legend>
<div class="step">
<legend>Step 2/3</legend>
</div>
<br />
<p class="important">Order information</p>
<br />
<div class="valitse">
<p class="important">Choose all of the products you want to refund.</p>
</div>
<hr>
<script>
//function for making a checkbox to check all checkboxes
function toggle(source) {
checkboxes = document.getElementsByName('productinfo[]');
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
}
}
</script>
<input type='checkbox' onClick='toggle(this)' />
<p class="selectall">Select all products</p>
<label>The order:</p>
<br />
<?php
//Gets and displays data based on certain variables from the database, connects quantity and product name into one string in
$order = wc_get_order( $ordernumber );
foreach ($order->get_items() as $item ){
$unitprice = $item->get_total() / $item->get_quantity();
// This is the part that currently gets the quantity value for the next page/the refund request
echo "<input type='checkbox' name='productinfo[]' value='" . " " . $item->get_name() . " , " . $item->get_quantity() . " QTY" . " | " . $item->get_total() ."'>";
echo '<p>';
echo __('Product name: ' ) . $item->get_name() . '<br>';
if($item->get_quantity() > 1) {
echo "Quantity: " . "<input type='number' name='numberqty' value='" . $item->get_quantity() . "'max='" .$item->get_quantity() . "' min='1' > " . "<br/>";
}
else {
echo __('Quantity: ' ) . $item->get_quantity() . '<br>';
}
if ($item->get_quantity() > 1) {
echo __('Product price: ') . $unitprice . '€' . '<br/>';
}
echo __('Products total: ' ) . wc_price($item->get_total()) . '</p>' . '<br/>';
}
echo '<p>'. __('Order total: ') . $order->get_total() . '</p>';
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" id='check' value="Next"/>
<script>
//Checks if any checkboxes have been checked, if not, displays an error
function checkBoxCheck() {
if($('input[name="productinfo[]"]:checked').length) {
console.log("at least one checked");
return true;
}
else {
alert("Select at least 1 product.");
return false;
}
}
//runs the script for checking the checkboxes
$('#check').on('click', checkBoxCheck);
</script>
</label>
<input type="hidden" name="page" value="2">
</form>
<br />
</div>
</body>
</html>
<?php
编辑:所以为了使这个更清楚,这里的问题是我正在建立一个客户可以用来返回一些产品的系统,在第2/3页,我目前遇到问题,用户可以看到所有的他的订单包含的产品,所有产品都有自己的复选框,以便用户可以选择要退款的产品.现在,当用户选择产品并按“下一步”时,所选信息显示在下一页3/3上.该页面上显示的值是产品名称,产品价格和产品QUANTITY.但是,QUANTITY始终与客户订购的数量相同,并且在2/3页面上(用户选择要退款的产品),我希望能够输入我想要的产品数量退款,并在复选框数组上显示此值.
例如.我已经购买了5根电缆,但是我想只返回其中的两根电缆,所以我在输入字段输入2.
解决方法:
首先,您必须更改以下内容:
echo "<input type='checkbox' name='productinfo[]' value='" . " " . $item->get_name() . " , " . $item->get_quantity() . " QTY" . " | " . $item->get_total() ."'>";
至
echo "<input type='checkbox' class='" . $item->get_id() . "checkBox' name='productinfo[]' value='" . " " . $item->get_name() . " , " . $item->get_quantity() . " QTY" . " | " . $item->get_total() ."'>";
还有这个:
if($item->get_quantity() > 1) {
echo "Quantity: " . "<input type='number' name='numberqty' value='" . $item->get_quantity() . "'max='" .$item->get_quantity() . "' min='1' > " . "<br/>";
}
对此:
if($item->get_quantity() > 1) {
echo "Quantity: " . "<input type='number' class='" . $item->get_id() . "' name='numberqty' value='" . $item->get_quantity() . "'max='" .$item->get_quantity() . "' min='1' onchange='changeCheckBoxValue(this.className)'> " . "<br/>";
}
如果项目上没有get_id(),请使用任何唯一标识符.
以下代码负责触发更改复选框值的事件
平变化=’changeCheckBoxValue(this.className)
最后在代码中添加以下函数:
function changeCheckBoxValue(className) {
var checkBox = document.getElementsByClassName(className + 'checkBox')[0];
var currentValue = checkBox.value;
var wantedAmount = document.getElementsByClassName(className)[0].value;
checkBox.value = currentValue .replace(new RegExp('[0-9]* QTY'),wantedAmount + ' QTY');
}
这将更新复选框的值
祝好运
内容总结
以上是互联网集市为您收集整理的javascript – 使用用户输入更改或更新复选框值全部内容,希望文章能够帮你解决javascript – 使用用户输入更改或更新复选框值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。