javascript - 通过 JavaScript 单击消防按钮

标签 javascript jquery html

当用户单击另一个按钮时,我需要使用 JavaScript“单击”一个按钮。

在 Mac 上的 Chrome 中,以下内容运行良好。但是,在 Mac 上的 Safari 中,单击该按钮只会重新加载当前页面,而不是触发预期的行为。

JS

$( 'document' ).ready( function() {
    var $myForm = $('#my-form');
    $('#button-fake').on('click', function(){
        console.log("FAKE CLICKED");
        if ($myForm[0].checkValidity()){
            console.log("FORM VALID");
            $('#button-real').click();
            console.log("FORM SUBMITTED");
        }
    });              
});

HTML

<input type="submit" id="button-fake" value="Fake button" />

<input type="submit" id="button-real" value="Real button" />

PS:这不是我的想法,我只是需要让它发挥作用。

最佳答案

您可能需要添加e.preventDefault();

var $myForm = $('#my-form');
$('#button-fake').on('click', function(e) {
  e.preventDefault();
  console.log("FAKE CLICKED");
  if ($myForm[0].checkValidity()) {
    console.log("FORM VALID");
    $('#button-real').click();
    console.log("FORM SUBMITTED");
  }
});

$('#button-real').on('click', function(e) {
  console.log('button-real clicked')

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id='my-form'>
  <input type='text' required>
  <button type='submit' id='button-fake'>Submit</button>
  <button type='button' id='button-real'>Real</button>

</form>

关于javascript - 通过 JavaScript 单击消防按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942048/

相关文章:

javascript - 在 jQuery 中获取分区标记的高度

javascript - 计算嵌套对象数组的平均值 - JavaScript

html - 如何使 div 元素的背景透明,顶部有元素?

javascript - 使用 Selenium 测试 jQuery 元素数据()?

javascript - 为什么我的 jQuery 效果不像它所说的那样执行?

javascript - Angular 递归

html - 使用 float 垂直对齐底部 img 和文本

javascript - 如何在 Plottable.js 饼图中使用自己的调色板

javascript - 当字符串末尾有 `\' 时,Json 字符串无法解码

javascript - 将 jQuery 日期选择器拆分为单独的日/月/年字段