【问题标题】:upload input not triggering click event上传输入不触发点击事件
【发布时间】:2016-10-11 20:44:10
【问题描述】:

所有控制台日志和警报都在发生,但按钮仍未被实际点击。

init: function() {

    $('input[type=file]').change(function() {
      $(this).closest('.btn-upload').toggleClass('active');

      $('#button-submit').click(function() {
        console.log("event listening")
      });

      $('#button-submit').click();
    });

}


<div>  
<input type="file" id="button-upload">
<input type="submit" id="button-submit">
</div>

【问题讨论】:

  • 我认为 Dan 已经对你进行了排序,但请帮自己一个忙,使用更简洁的 id ;)
  • 哈哈它的drupal ids ;)
  • 它仍然无法正常工作,有什么想法吗?
  • 是否有封装这些输入的表单?
  • 是的,这些输入在一个字段集中,而该字段集在一个表单中

标签: jquery input click


【解决方案1】:

您将事件处理程序附加到并单击文件输入而不是按钮,因为您在选择器末尾缺少-button

应该是:

init: function() {

$('input[type=file]').change(function() {
  $(this).closest('.btn-upload').toggleClass('active');

  $('#edit-submitted-student-membership-student-id-upload-upload-button').click(function(e) {
    e.stopPropagation();
    console.log("event listening")
  });

  $('#edit-submitted-student-membership-student-id-upload-upload-button').click();
    alert('asdfdf');
});

}


<div>  
    <input type="file" id="edit-submitted-student-membership-student-id-upload-upload">
    <input type="submit" id="edit-submitted-student-membership-student-id-upload-upload-button">
</div>

【讨论】:

  • 它仍然不会点击它:(
  • 我假设它正在向控制台输出“事件监听”?尝试删除 e.stopPropogation() 行,因为这将阻止其他处理程序触发并阻止提交表单。
  • 你希望它做什么?提交表格?如果是这样,我想知道您是否最好在更改处理程序中执行$('#YourFormID').submit() 之类的操作,而不是尝试单击按钮。
  • 顺便说一句,现在您的问题有 2 个元素具有相同的按钮 ID。
  • 您的问题中没有包含 AJAX 代码。如果将其写入控制台,则单击该按钮。您的问题似乎出在您的问题中未包含的代码中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2014-11-11
  • 2020-12-27
相关资源
最近更新 更多