我在这里看到很多问题,但没人能解决我的问题。
我有一个表单和一个保存按钮,当单击保存按钮时,它首先运行一个脚本来检查是否使用了不良单词。如果文本包含不好的单词,则会显示警报。当我单击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>
但是,我想在警报后留在同一页面上,以便用户可以删除坏词并再次单击保存按钮。
答案 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();
}
});