我需要一个textarea在textarea值的开头和结尾包含一组双引号。下面的代码的工作原理是双引号被添加到字段的开头和结尾,但如果用户输入文本然后返回到字段,则可以添加多个双引号集。我怎么能阻止这个? jQuery解决方案也是可以接受的。
<textarea name="quoteName" id="quoteName" style="width:100%" rows="4" onChange="quotes();" autofocus></textarea>
function quotes(){
var quoteValueBefore = document.getElementById("quoteName").value;
var ensureQuotes = "\"" + quoteValueBefore + "\"";
document.getElementById("quoteName").value = ensureQuotes;
}
答案 0 :(得分:0)
检查文本是否已经以引号开头,以及它是否已经以引号结束。如果缺少其中任何一个,请添加它。
同时检查长度&gt; = 2,否则"
将通过测试(以报价结束?检查。以报价开头?检查。)
function quotes() {
var quoteValue = document.getElementById("quoteName").value;
if (!quoteValue.match(/^"/))
quoteValue = '"' + quoteValue;
if (!quoteValue.match(/"$/))
quoteValue += '"';
if (quoteValue.length < 2)
quoteValue += '"';
document.getElementById("quoteName").value = quoteValue;
}
&#13;
<textarea name="quoteName" id="quoteName" style="width:100%" rows="4" onChange="quotes();" autofocus></textarea>
&#13;
答案 1 :(得分:0)
function checkQuotes(id) {
str = document.getElementById(id).value;
if (str[0] != '"') {
str = '"'.concat(str);
}
if (str[str.length - 1] != '"') {
str = str.concat('"')
}
return str
}
function quotes() {
withQuotes = checkQuotes("quoteName");
document.getElementById("quoteName").value = withQuotes
}
<textarea name="quoteName" id="quoteName" style="width:100%" rows="4" onchange="quotes()">testing the quotes feature</textarea>
此片段将检查第一个字符是否为引号,如果不是,它将在它之前添加。它还会检查最后一个字符是否为引号,如果不是,它会附加它。这可能不是最友好的UI解决方案,我建议您通过CSS添加它,如果您将其用于显示目的,或使用PHP或您正在为后端表单提交做的任何事情。