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

I want to check the content of textarea must contains previous inputs' words using javascript

本文关键字:包含 单词 输入 javascript 检查 文本 区域      更新时间:2023-09-26

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

谢谢。

我想

我明白你想做什么:你希望用户利用以前给定的35个单词的输入,这是从输入字段中检索的,但也让用户可以选择添加更多。此添加是可选的。

在这里查看

要清楚

输入: 1, 2, 3 |

文本区域: 1, 2, 3 | 返回 true

输入: 1, 2, 3 |

文本区域: 1, 2, 3, 4 | 返回 true

输入: 1, 2, 3 |

文本区域: 1, 3, 2 | 返回 true

输入: 1, 2, 3 |

文本区域: 3, 2, 1 | 返回 true

输入: 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!");
    }
});

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

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

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

这将根据您定义的值检查在每个 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/