php - keyup if 语句的 indexOf 字符串行为很奇怪?

标签 php javascript jquery html

下面的代码有一个小问题:

$('#body').keyup(function(){
    var i = $('#body').val();

    if(i.toLowerCase().indexOf("contact") >= 0){
        $('#tosviolation').fadeIn('fast'); 
        $('#sendForm').attr('action','send.php?f=1');
        $('.toscontent').html("TOS Breach!");
    } else { 
        $('#tosviolation').fadeOut('fast'); 
        $('#sendForm').attr('action','send.php?f=0');
    }

    if(i.toLowerCase().indexOf("@") >= 0){
        $('#tosviolation').fadeIn('fast'); 
        $('#sendForm').attr('action','send.php?f=1');
    } else { 
        $('#tosviolation').fadeOut('fast'); 
        $('#sendForm').attr('action','send.php?f=0');
    }
});

它检查 #body(文本区域)是否包含值“contact”或/和“@”,如果此文本区域确实包含所述值,它会弹出/闪烁一个 div 告诉用户他们违反了服务条款。使用“@”,当用户键入它时,该框会停留在那里,但是当用户键入“联系人”时,该框只会闪烁几次然后消失,我猜是因为“@”是 1 个字符长,并且“contact”有 7 个字符长,与此有关。

话说回来,这也很奇怪?我打算让它只是 fadeIn() 并保持淡入。我不介意闪光灯,因为当然,在 keyup 上,每次用户点击一个键时它都必须运行该功能,这样很好,但是当用户在文本区域的某处键入“联系人”时,我无法弄清楚如何将它保留在那里。此外,它使用 .attr() 的另一部分是将用户定向到 send.php,如果它确实包含“contact”、“@”——然后它会插入他们发送。 php?f=1,如果不是,则 send.php?f=0 -- #sendForm 是我之前拥有的表单标签的 ID,我认为这已经可以正常工作了。

有谁知道如何让盒子在与数据“联系”一起被拉起后留在那儿?

最佳答案

试试这个。请记住,设置表单的属性并依赖它进行服务器端处理是危险的 - 最终用户可以在发布之前轻松摆弄它。您应该再次使用服务器进行验证,而不是使用任何随表单发送的 GET 变量。

$('#body').keyup(function () {
    var i = $('#body').val();
    if (i.toLowerCase().indexOf("contact") >= 0 || i.toLowerCase().indexOf("@") >= 0) {
        $('#tosviolation').fadeIn('fast');
        $('#sendForm').attr('action', 'send.php?f=1');
        $('.toscontent').html("TOS Breach!");
    } else {
        $('#tosviolation').fadeOut('fast');
        $('#sendForm').attr('action', 'send.php?f=0');
    }
});

关于php - keyup if 语句的 indexOf 字符串行为很奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110956/

相关文章:

php - 插入sqlite数据库会使用PHP创建额外的字段

javascript - Angular $element.focus 与 jquery $(selector).focus

jquery - 背景不拉伸(stretch)

jquery - 如何循环遍历多个div

php - 使用woocommerce在wordpress中获取购物车中的商品数量

php - 在 Yii 中更新查询

php - MySQL 身份验证在 php 上失败,但在 phpmyadmin 中失败

javascript - 如何在DIV宽度改变时动态改变类?

javascript - 按钮是否可以使用异步 JavaScript 重定向和执行功能

jquery - 在 Aurelia 应用程序中绑定(bind) FullCalendar 时超出最大调用堆栈大小