我是Javascript的新手并且不了解以下行为。
当textarea为空时,“process”代码不会将其识别为null,并且不会提示输入文本。
当textarea中有文本时,“进程”代码不会显示警报中的文本。看来这可能是一个范围问题,我认为我的所有变量都是全局的。
HTML code:
<input type="button" name="btnProcessTA" onclick="myTextArea('process')" value="Process Text Area" />
<input type="button" name="btnClearTA" onclick="myTextArea('clear')" value="Clear Text Area" />
<form id="formExample" action="" method="get">
<label for="textAreaField">A text area field</label>
<textarea name="textAreaField" id="textAreaField" rows="4" cols="50"></textarea>
</form>
Javascript代码:
<script type="text/javascript">
function myTextArea(op)
{
oTextArea = document.getElementById("textAreaField");
textAreaValue = oTextArea.value;
alert(op + "\n" + oTextArea + "\n" + textAreaValue);
switch (op){
case "clear":
oTextArea.value = "";
alert("Clearing");
break;
case "process":
if (textAreaValue = "")
alert("Would you please enter some text?");
else
alert("You entered:\n\n" + textAreaValue);
break;
default : alert("unknown op code");
}
}
</script>
答案 0 :(得分:2)
要进行比较,您必须使用==
代替=
:)
case "process":
if (textAreaValue == "")
alert("Would you please enter some text?");
else
alert("You entered:\n\n" + textAreaValue);
break;
答案 1 :(得分:2)
更改
if (textAreaValue = "")
到
if (textAreaValue === "") // or ==
您正在执行作业而不是进行比较。
答案 2 :(得分:0)
if (textAreaValue = "")
if语句中的单个等号被解释为赋值(它不会抛出错误,因为从技术上讲它是正确的语法,但很多人通过使用单个等号而不是双等号来犯这个错误)。如果您打算比较而不是赋值,则正确的语法将是三等号。
if (textAreaValue === "")