将值传递给jquery创建的输入字段
Passing value to jquery created input field
我正试图通过jquery将一个值传递到wooccommerce的SKU输入字段,该字段是在您单击wp-admin/edit.php?post_type=product
中的快速编辑按钮时动态生成的,但由于某些原因,没有将值粘贴到字段中。
function generateRandomString($length = 10) {
$characters = '0123456789ABCDEFGHIJKMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
function quick_edit_sku($product) {
$string = generateRandomString(); // outputs a random string correctly
?>
<script>
jQuery(document).ready(function($) {
$('.editinline').on('click', function(event) {
var sku_val = $("input[name=_sku]").val(); // checks if there is a value
var random = '<?php echo $string ?>';
if (sku_val === '') { // if SKU field is empty than apply random string. Though this doesn't work quite well, only on the second time I click quick edit it returned correct
console.log(random);
$("input[name=_sku]").val(random);
} else {
console.log('Already has value SKU value');
}
});
});
</script>
<?php }
add_filter( 'admin_footer', 'quick_edit_sku' );
按钮+萤火虫http://postimg.org/image/oqdpkhqov/
问题是js很快就会被触发,当你点击"快速编辑"时,wordpress会发送一个Ajax请求来获取快速编辑选项的HTML,所以在最初点击时input[name=_sku]
实际上并不存在。只需在添加值之前添加setTimeout
函数即可:
<script>
jQuery(document).ready(function($) {
$('.editinline').on('click', function(event) {
var sku_val = $("input[name=_sku]").val();
var random = '<?php echo $string ?>';
if (!sku_val) {
console.log(random);
setTimeout(function(){
$("input[name=_sku]").val(random)
}, 100);
} else {
console.log('Already has value SKU value');
}
});
});
</script>
此外,您的检查if (sku_val === '') { ... }
失败。
然而,使用if (!sku_val) { ... }
将起作用。
(根据WP 4.1.1进行测试)
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在HTML输入字段中添加不可删除的后缀
- 互斥单选按钮和相应的输入字段
- 在IE9中的输入字段中输入焦点最近按钮
- 选中单选框时将属性添加到输入字段
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 输入字段将't获取更新的值
- 如何选择多个输入字段并删除所需的属性
- 输入字段,只接受0到12之间的数字
- 单击鼠标,用MySQL数据填充html表单输入字段
- 使用jquery将输入字段转换为文本
- Model中的Typeahead返回空值以形成输入字段
- 如何从查询字符串中的输入字段发回文本
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- 将值传递给jquery创建的输入字段