【问题标题】:JQuery checkbox.prop('checked') always returns false value [duplicate]JQuery checkbox.prop('checked')总是返回错误值[重复]
【发布时间】:2019-02-08 06:42:36
【问题描述】:

我正在构建的电子应用程序中的复选框有问题。

复选框运行良好并返回正确的值,选中时返回 true 值,否则返回 false。

当我将一些库添加到我的应用程序时,复选框在选中或取消选中时开始返回错误值。

以下是项目的属性:

Package.Json

"dependencies": {
    "dexie": "^2.0.4",
    "electron-titlebar-windows": "^3.0.0",
    "jquery": "^3.3.1",
    "lodash": "^4.17.10",
    "material-design-icons": "^3.0.1",
    "materialize-css": "^1.0.0-rc.2",
    "talkify-tts": "^2.1.2",
    "typeface-roboto": "0.0.54"
  },
  "devDependencies": {
    "electron": "^2.0.4",
    "electron-packager": "^12.1.0"
  }

Index.html

// First option
$('#roswitch').change(() => {
  if ($(this).prop("checked")) {
    console.log("Checked")
  } else {
    console.log("Not Checked")
  }
})

// Second option

$('#roswitch').change(() => {
  if ($(this).is(":checked")) {
    console.log("Checked")
  } else {
    console.log("Not Checked")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="switch">
  <label>
    Off
    <input id="roswitch" value="false" type="checkbox">
    <span class="lever"></span>
    On
  </label>
</div>

我已经在 J​​Query 中尝试了这两个选项,并且都返回 false。

谢谢

【问题讨论】:

  • 问题是因为您在事件处理程序定义中使用了箭头函数。这意味着外部范围保留在处理程序中,因此this 不是您所期望的。简单修复,这里不要使用箭头函数,或者改用event.target

标签: javascript jquery html node.js electron


【解决方案1】:

附加更改事件时语法不正确。由于哪个更改事件在附加事件时返回检查的状态值,而不是在状态更改时返回。应该是:

 $('#roswitch').change(function(){
  if ($(this).prop("checked")) {
    console.log("Checked")
  } else {
   console.log("Not Checked")
  }
})

// First option
 $('#roswitch').change(function(){
  if ($(this).prop("checked")) {
console.log("Checked")
  } else {
   console.log("Not Checked")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="switch">
  <label>
    Off
    <input id="roswitch" value="false" type="checkbox">
    <span class="lever"></span>
    On
  </label>
</div>

【讨论】:

  • 非常感谢,我换了箭头功能,忘记了“this”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多