我想使用 javascript 检查 textarea 的内容必须包含以前输入的单词

Posted

技术标签:

【中文标题】我想使用 javascript 检查 textarea 的内容必须包含以前输入的单词【英文标题】:I want to check the content of textarea must contains previous inputs' words using javascript 【发布时间】:2015-08-29 15:02:05 【问题描述】:

是否可以使用 javascript 或 jquery 检查 textarea 的内容是否必须包含以前输入的所有单词?如果不包含所有单词,则 textarea 的值无效或不会提交。 请尽快回复我。

谢谢。

【问题讨论】:

我试过这个***.com/questions/3495735/… 但它不起作用我想要这里提到的相同。 你可以在问题中添加一些代码吗? 用户必须在 textarea 中输入这 35 个输入词,这些词之前作为这 35 个输入的值给出 好的,请查看编辑后的答案。它检查一个数组。 【参考方案1】:

我想我理解您想要完成的工作:您希望用户利用之前给出的从输入字段中检索到的 35 个单词的输入,但也让用户可以选择添加更多。此添加是可选的。

看看here

要明确

输入:1、2、3 |文本区域:1、2、3 |返回真

输入:1、2、3 |文本区域:1、2、3、4 |返回真

输入:1、2、3 |文本区域:1、3、2 |返回真

输入:1、2、3 |文本区域:3、2、1 |返回真

输入:1、2、3 |文本区域:2、2、1 |返回错误

输入:1、2、3 |文本区域:1、2 |返回错误

JS

$("#submit").prop("disabled", true);

$(".input").on("keyup", function () 
    var input1 = document.getElementById("input1").value;
    var input2 = document.getElementById("input2").value;
    var input3 = document.getElementById("input3").value;
    var finalinput1 = input1 + " " + input2 + " " + input3;
    var finalinput2 = input1 + " " + input3 + " " + input2;
    var finalinput3 = input2 + " " + input1 + " " + input3;
    var finalinput4 = input2 + " " + input3 + " " + input1;
    var finalinput5 = input3 + " " + input1 + " " + input2;
    var finalinput6 = input3 + " " + input2 + " " + input1;
);



$("#area").on("keyup", function () 
    var content2 = $("#area").val();
    var input1 = document.getElementById("input1").value;
    var input2 = document.getElementById("input2").value;
    var input3 = document.getElementById("input3").value;
    var finalinput1 = input1 + " " + input2 + " " + input3;
    var finalinput2 = input1 + " " + input3 + " " + input2;
    var finalinput3 = input2 + " " + input1 + " " + input3;
    var finalinput4 = input2 + " " + input3 + " " + input1;
    var finalinput5 = input3 + " " + input1 + " " + input2;
    var finalinput6 = input3 + " " + input2 + " " + input1;
    if (content2.indexOf(finalinput1) >= 0 || content2.indexOf(finalinput2) >= 0 || content2.indexOf(finalinput3) >= 0 || content2.indexOf(finalinput4) >= 0 || content2.indexOf(finalinput5) >= 0 || content2.indexOf(finalinput6) >= 0) 
        $("#submit").prop("disabled", false);
     else 
        $("#submit").prop("disabled", true);
    
);

$("#submit").click(function () 
    var content2 = $("#area").val();
    var input1 = document.getElementById("input1").value;
    var input2 = document.getElementById("input2").value;
    var input3 = document.getElementById("input3").value;
    var finalinput1 = input1 + " " + input2 + " " + input3;
    var finalinput2 = input1 + " " + input3 + " " + input2;
    var finalinput3 = input2 + " " + input1 + " " + input3;
    var finalinput4 = input2 + " " + input3 + " " + input1;
    var finalinput5 = input3 + " " + input1 + " " + input2;
    var finalinput6 = input3 + " " + input2 + " " + input1;
    if (content2.indexOf(finalinput1) >= 0 || content2.indexOf(finalinput2) >= 0 || content2.indexOf(finalinput3) >= 0 || content2.indexOf(finalinput4) >= 0 || content2.indexOf(finalinput5) >= 0 || content2.indexOf(finalinput6) >= 0) 
        $("#output").text("Succes!");
     else 
        $("#output").text("Values are not the same!");
    
);

【讨论】:

评论不用于扩展讨论;这个对话是moved to chat。【参考方案2】:

在 JavaScript 中,您可以通过访问值来访问 textareas 内部文本的值。

例如:document.getElementById("myTextarea").value = "Fifth Avenue, New York City";

然后您可以像检查任何其他 JavaScript 一样检查它并在提交时运行测试

【讨论】:

好的,我知道了,但我是 javascript 的基础,所以如果可能的话,你能提供我的代码吗?因为用户必须为 textarea 语句使用之前的 35 个输入,否则它不能提交 textarea 值。【参考方案3】:

这将根据您定义的值检查在每个 keyup 事件中输入的文本值。如果返回 true,则不会禁用提交属性,否则会禁用。

$('input[type="submit"]').prop('disabled', true);
    $("textarea").on("keyup", function()
    if($(this).val() == 'value to check against')
       $('input[type="submit"]').prop('disabled' , false);
       
    else
       $('input[type="submit"]').prop('disabled' , true);
       
    )

https://jsfiddle.net/bgdogf2c/

如果检查数组中的项目:

$('input[type="submit"]').prop('disabled', true);
    $("textarea").on("keyup", function()
    if($.inArray($(this).val(), [ "one", "two", "three"] ) != -1)
       $('input[type="submit"]').prop('disabled' , false);
    else
       $('input[type="submit"]').prop('disabled' , true);
       
    )

https://jsfiddle.net/yz2q6zga/1/

【讨论】:

非常相似,但不是我想要的。我希望用户必须利用 textarea 中的所有先前输入。它也可以添加任何其他文本,但之前的输入值是提交 textarea 语句所必需的。

以上是关于我想使用 javascript 检查 textarea 的内容必须包含以前输入的单词的主要内容,如果未能解决你的问题,请参考以下文章

我想使用 javascript 检查 textarea 的内容必须包含以前输入的单词

怎样计算textare文本域的文字个数限制

使用Javascript检查JSON对象是不是包含值[重复]

如果连接是本地主机,如何使用 javascript 检查?

如何用javascript检查除法的总和?

使用 Javascript 检查多维数组的长度 [重复]