【发布时间】:2016-05-16 21:00:21
【问题描述】:
我在“\n”创建行时遇到问题,即使在复制时被告知不要这样做。修复可能很简单,我只是出于某种原因看不到。我将不胜感激有关此问题的任何意见或指导。
(请只给我 Javascript 答案,因为我对 jquery 或其他方法不感兴趣)
<script type="text/javascript">
if (pullDownResponseE == "")
{
}
else {
var pullDownValuesE = document.getElementById("taskOne");
var pullDownResponseE = pullDownValuesE.options[pullDownValuesE.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponseE;
}
if (pullDownResponseF == "")
{
}
else{
var pullDownValuesF = document.getElementById("taskTwo");
var pullDownResponseF = pullDownValuesF.options[pullDownValuesF.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponseF;
}
</script>
如您所见,如果我的下拉值等于 "",pullDownResponseF 和 pullDownReponseE 应该什么都不做,并且这部分大部分工作,它不执行任何 else 代码,除了新行 "\n" 部分.
谁能解释这里出了什么问题?
编辑:拥有更多代码可能会有所帮助。由于篇幅太长,我只包括基本部分。
<script type="text/javascript">
function copyNotesTemplate()
{
var stuffToCopy = document.getElementById('myForm').value;
if(stuffToCopy.length > 1)
{
var stuffToCopy = "PT meets criteria" + "\n" + document.getElementById('myForm').value;
}
if(document.getElementById('noPtCriteria').checked)
{
var stuffToCopy = document.getElementById('noPtCriteria').value;
}
if (pullDownResponsee == "")
{
}
else {
var pullDownValuese = document.getElementById("taskOne");
var pullDownResponsee = pullDownValuese.options[pullDownValuese.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponsee;
}
if (pullDownResponsef == "")
{
}
else{
var pullDownValuesf = document.getElementById("taskTwo");
var pullDownResponsef = pullDownValuesf.options[pullDownValuesf.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponsef;
}
if (pullDownResponseg == "")
{
}
else{
var pullDownValuesg = document.getElementById("taskThree");
var pullDownResponseg = pullDownValuesg.options[pullDownValuesg.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponseg;
}
var tempValues = document.getElementById('whatUpdate').value
if(tempValues.length > 1)
{
var stuffToCopy = stuffToCopy + "Updated" + " " + document.getElementById('whatUpdate').value + " ";
}
else{
}
var tempValuess = document.getElementById('whatInfo').value
if(tempValuess.length > 1)
{
var stuffToCopy = stuffToCopy + "per" + " " + document.getElementById('whatInfo').value + "\n";
}
else{
}
var tempValue = document.getElementById('whatDSCRP').value
if(tempValue.length > 1)
{
var stuffToCopy = stuffToCopy + document.getElementById('whatDSCRP').value + " " + "dscrp on Collection tube and trf was resolved using" + " ";
}
else{
}
var tempValue = document.getElementById('resolveIT').value
if(tempValue.length > 1)
{
var stuffToCopy = stuffToCopy + document.getElementById('resolveIT').value + " ";
}
else{
}
var tempValue = document.getElementById('tubeCorrect').value
if(tempValue.length > 1)
{
var stuffToCopy = stuffToCopy + "trf was" + " " + document.getElementById('tubeCorrect').value;
}
else{
}
if(stuffToCopy.length > 1)
{
var stuffToCopy = stuffToCopy + "\n" + document.getElementById('moreNotes').value;
}
else{
}
if (pullDownResponsesu == "")
{
}
else{
var pullDownValuesu = document.getElementById("mod33Apply");
var pullDownResponsesu = pullDownValuesu.options[pullDownValuesu.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponsesu;
}
if (pullDownResponsesb == "")
{
}
else{
var pullDownValuesb = document.getElementById("resultICR");
var pullDownResponsesb = pullDownValuesb.options[pullDownValuesb.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponsesb + "," + " ";
}
if (pullDownResponsesc == "")
{
}
else{
var pullDownValuesc = document.getElementById("moneyNCIS");
var pullDownResponsesc = pullDownValuesc.options[pullDownValuesc.selectedIndex].value;
stuffToCopy = stuffToCopy + pullDownResponsesc + " ";
}
if (pullDownResponsesd == "")
{
}
else{
var pullDownValuesd = document.getElementById("resultMMT");
var pullDownResponsesd = pullDownValuesd.options[pullDownValuesd.selectedIndex].value;
stuffToCopy = stuffToCopy + pullDownResponsesd;
}
if(stuffToCopy.length > 1)
{
var stuffToCopy = stuffToCopy + " " + "Reason:" + " " + document.getElementById('whyNotEligible').value;
}
else{
}
if (pullDownResponsesa == "")
{
}
else{
var pullDownValuesa = document.getElementById("testReleased");
var pullDownResponsesa = pullDownValuesa.options[pullDownValuesa.selectedIndex].value;
stuffToCopy = stuffToCopy + "\n" + pullDownResponsesa;
}
window.clipboardData.setData('text', stuffToCopy);
}
</script>
如果有人在此示例中跳过填写备注字段或跳过下拉菜单,则它不会像我预期的那样执行代码,但它会在复制时创建一个新行,如下所示:
taskOne 已选择
(由于未选择任务二,因此此处多出一行)
taskThree 已选择
如果跳过任务二,我希望任务一和三之间不要有多余的行。像这样:
taskOne 已选择
taskThree 已选择
注意:我知道 else {} 毫无意义,但它在视觉上对我有帮助。
我创建了从我的工具复制/粘贴时的样子的片段,如果您愿意,可以在此处查看:
这也是我的 html 示例:
<html lang="en">
What tasks are needed for the case?
<br />
<select class="style3" id="taskOne">
<option value=""></option>
<option value="ABN needed">ABN needed</option>
<option value="Auth needed">Auth needed</option>
</select>
</html>
【问题讨论】:
-
在设置变量后尝试添加警报(变量)...它会告诉你它们是什么。您的代码并没有太大意义……我们很难弄清楚您要做什么。(这可能就是为什么有人不赞成它的原因……尝试将工作代码放入其中,然后您就可以了)会得到更多的回应)。欢迎来到!
-
我只是想知道“\n”是否有理由在不应该的情况下创建一个新行。我可以编辑我的帖子以包含整个功能,但它非常长,并且认为它会让人们感到沮丧而不是它的帮助。我已经尝试过警报,但很遗憾它没有回答我的问题。
-
"它不执行任何 else 代码,除了新行 "\n" 部分" - 它不可能只执行最后一部分否则阻止。未显示的代码中一定还有其他事情发生。顺便说一句,为什么你有空的 if 块?为什么不在你的 if 条件中使用 !=?
-
这个换行符究竟是在哪里“创建”的?如果 stufftocopy 一开始是空的,并且其中一个 pulldownresponse 不为空,那么您最终会在 stufftocopy 中得到一个前导“\n”
-
@user1269942 请永远不要鼓励某人使用
alert()进行调试!为此目的有浏览器控制台和标准 js 日志记录。
标签: javascript newline