当从下拉列表中选择一个选项时,我正在使用jquery来更改输入字段的值。这些字段最初通过php
填充值<label><?php echo $size->size ?></label><input type="number" name="<?php echo $lineno ?>-<?php echo $size->id ?>" id="<?php echo $lineno ?>-size<?php echo $sizeblock; ?>" class="form-control" value="<?php echo $size->qty ?>" title="">
一旦页面加载,这些值似乎被jquery覆盖。在下拉列表值实际更改之前,如何将这些值保留在输入字段中?我的js如下:
jQuery(document).ready(function($) {
$("[id^=packs]").on('change', function() {
var packname = this.value;
console.log("packname:"+packname);
var lineno = this.getAttribute('data-lineno');
console.log("lineno: "+lineno);
$.ajax({
type: "post",
url: "<?php echo base_url(); ?>products/pack",
cache: false,
// ContentType : 'application/json',
data: {name: packname},
success: function(json){
try{
var obj = jQuery.parseJSON(json);
console.log(obj);
console.log("size1: "+obj.packdetail[0].size1);
答案 0 :(得分:0)
如果$("[id^=packs]")
发生更改,您发布的代码只会更改值。也许你还没有提供其他代码来实际修改输入。
也许您想尝试使用浏览器调试器(例如chrome开发人员工具)来检查某些代码是否已执行。
只需在change-event-callback中添加debugger;
,然后使用打开的Debugger重新加载页面。如果此代码部分被执行,它将停在那里。
另一个可能性是跟踪(由php初始填充)输入字段的属性更改。看到 Set breakpoint to event in google chrome debugger
答案 1 :(得分:0)
上面的代码按预期工作。当表单的值保存时,我没有更改id以对应数据库更新。因此,实际的数据库字段的值为0,并且不是PHP问题。