如果出现警报,则停止重定向页面

时间:2018-07-02 11:37:11

标签: javascript jquery

我在这里看到很多问题,但没人能解决我的问题。

我有一个表单和一个保存按钮,当单击保存按钮时,它首先运行一个脚本来检查是否使用了不良单词。如果文本包含不好的单词,则会显示警报。当我单击ok警报时,它将执行save按钮的待处理操作,然后重定向到主页。

我的代码

<script type="text/javascript">
$(document).delegate('.btn-save-template', 'click', function() {
    var text = $('#input-message').val().toLocaleLowerCase(); 
    var bad_words = ['bad', 'sex', 'fuck you', 'fuckyou', 'murder', 'rap']; // Bad Words

    if((new RegExp( '\\b' + bad_words.join('\\b|\\b') + '\\b') ).test(text)){
        alert('Sorry, you are not allowed to use bad words');
    }
});
</script>

但是,我想在警报后留在同一页面上,以便用户可以删除坏词并再次单击保存按钮。

3 个答案:

答案 0 :(得分:1)

提交类型的按钮替换为 button 类型,以禁用浏览器进行的表单处理。

<input type="button" class="btn-save-template" value=...>

如果所有测试均成功通过,则用户单击按钮时,请通过脚本提交表单。

<script type="text/javascript">
$(document).delegate('.btn-save-template', 'click', function() {
    var text = $('#input-message').val().toLocaleLowerCase(); 
    var bad_words = ['bad', 'sex', 'fuck you', 'fuckyou', 'murder', 'rap']; // Bad Words

    if((new RegExp( '\\b' + bad_words.join('\\b|\\b') + '\\b') ).test(text)){
        alert('Sorry, you are not allowed to use bad words');
    } else {
        this.form.submit();
    }
});
</script>

答案 1 :(得分:1)

我使用了jquery的keydown功能来检查坏词并在使用了坏词时禁用按钮。

我的代码

<script type="text/javascript">
$('#input-message').keydown(function() {
    var text = $('#input-message').val().toLocaleLowerCase(); 
    var bad_words = ['bad', 'fuck you', 'fuckyou', 'kill you', 'murder', 'rap']; // Bad Words

    if((new RegExp( '\\b' + bad_words.join('\\b|\\b') + '\\b') ).test(text)){
        alert('Sorry, you are not allowed to use bad words');
        $('.btn-save-template').attr('disabled',true);
        $('input-messgae').css('border','1px solid red');
    }else{
        $('.btn-save-template').attr('disabled',false);
    }
});
</script>

现在对我来说很好... :)

答案 2 :(得分:0)

您可以阻止浏览器的默认行为

function(event) {
   ...
   if((new RegExp( '\\b' + bad_words.join('\\b|\\b') + '\\b') ).test(text)){
       alert('Sorry, you are not allowed to use bad words');
       event.preventDefault();
   }
});