当前位置: 首页 > 知识库问答 >
问题:

jquery val()会自动从number更改为undefined

周阳波
2023-03-14

我有一个“输入”快把我逼疯了。输入从PHP函数“回显”到HTML页面中。

    '<td class="product-quantity" data-title="Quantity">
                            <div class="quantity">
                <label class="screen-reader-text" for="quantity_5ed41a96cc5c6">Casual shirt quantity</label>
        <input
            type="number"
            id="input'.$e.'"
            class="qtychg input-text qty text"
            step="0.5"
            value="'.$arr[$e]['quantity'].'"
            size="4"
            inputmode="numeric" />
                <span class="product-qty-arrows">
            <span id="'.$e.'" class="product-qty-increase lnr lnr-chevron-up"></span>
            <span id="'.$e.'" class="product-qty-decrease lnr lnr-chevron-down"></span>
        </span>
        </div>
                            </td>'

我可以使用span“class=”product-qty-recish“(调用以下javascript脚本)增加/减少输入值:

<script>
$('span').click(function (){

var Id=$(this).attr('id');
var val=$('#input'+Id).val();
var className= this.className;

if(className == "product-qty-increase lnr lnr-chevron-up"){

    val++;

}else if(className == "product-qty-decrease lnr lnr-chevron-down"){

    val--;
}

alert(val);

 $.ajax({
                        type: "POST",
                        url: "actions.php?action=chgQty",
                        data: "key=" + Id +"&val=" + val ,
                        success: function(result) { 
                          location.reload();
                        }
                     })


});
</script>

让我抓狂的问题有2个:

1)弹出“alert(val);”两次!!!!一次是正确的数字,第二次是“undefined”

2)显然,我不能发送$.ajax调用,因为该值变成了未定义值。

知道吗???

共有1个答案

聂季同
2023-03-14

原因是您有嵌套的跨度,并且要将事件处理程序绑定到所有的跨度。当您单击向上或向下跨距时,事件会冒出到并在那里激发。

使用一个更具体的选择器,这样您只绑定到向上和向下按钮。

null

$('span.lnr').click(function() {

  var Id = $(this).attr('id');
  var val = $('#input' + Id).val();

  if ($(this).hasClass("product-qty-increase")) {
    val++;
  } else if ($(this).hasClass("product-qty-decrease")) {
    val--;
  }

  alert(val);

  $.ajax({
    type: "POST",
    url: "actions.php?action=chgQty",
    data: {key: Id, val: val},
    success: function(result) {
      location.reload();
    }
  })
});
 类似资料:
  • 问题内容: 连接类别: 进行连接的方法,此方法附加了一个鼠标lostfocus事件,并从数据库中返回我想要的项目: 但是由于某种原因,在第二次尝试中,它将org.mysql更改为org.sqlite.JDBC java.sql.SQLException:无效的数据库地址: org.sqlite.JDBC.createConnection(JDBC.java:110)处的* jdbc:mysql:/

  • 连接类别: 方法进行连接,此方法附加一个鼠标lostfocus事件,并从数据库返回我想要的项目: 但是由于某种原因,在第二次尝试中,它将org.mysql更改为org.sqlite.JDBC JAVAsql。SQLException:无效的数据库地址:jdbc:mysql://192.168.0.222/risabel在org。sqlite。JDBC。createConnection(JDBC.j

  • 我可以提交大量更改,但没有任何内容可以进入 github。 只有当我从菜单中手动单击 PUSH 函数时,它才会推送到 github。 如何让它在提交时自动执行此操作? 这些是我的VS GIT设置:

  • 试图用hibernate创建表,但它已经创建并删除了。 hibernate.cfg.xml:

  • 我在学习教程中的动画自动布局 http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was 一切都很顺利。 当我尝试在我的应用程序中使用这个概念,尝试从下到上设置设置屏幕(UIView)的动画时,当设置屏幕只是一个空的UIView时,效果非常好, 但如果我将UILabel