我想使用 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 的内容必须包含以前输入的单词