所以,我已经写了这个表单和这个简单的javascript来验证用户输入。 问题是,它完全有效,直到我添加第三个函数validateHash,它将hashtag插入到文本框中并检查它是否在开头有一个#标签。 我把代码发送给了一个朋友,他说在他的电脑上工作正常(检查字段是否填满,然后检查标签是否正确),而在我的电脑上它只是跳过每个功能并将数据提交给php页面没有检查任何东西。 我正在使用Firefox,他使用的是Chrome,但我尝试使用后者同样的结果。 代码本身有什么问题吗?
<!doctype html>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" />
<script language="JavaScript" type="text/javascript">
function validateForm() {
if(validate(document.form.song.value) && validate(document.form.hashtag.value))
if(validateHash(document.form.hashtag.value))
return true;
else
{
alert("Please fill all the fields");
return false;
}
}
function validate(text) {
if(text==null || text=="")
return false;
else
return true;
}
function validateHash(text) {
if(text.charAt(0) != "#") {
alert("Insert hashtag correctly");
return false;
}
else
return true;
}
</script>
<form action="format.php" name="form" method="post" class="basic-grey" onsubmit="return validateForm()">
<h1>Anisongs Form
<span>Fill all the text in the fields</span>
</h1>
<label>
<span>Song lyrics :</span>
<textarea id="song" name="song" placeholder="Max 120 characters" maxlength="120"></textarea>
</label>
<label>
<span>Anime hashtag :</span>
<input id="hashtag" type="text" name="hashtag" placeholder="#loghorizon" maxlength="20"/>
</label>
<span> </span>
<input type="submit" class="button" value="Submit" />
<input type="reset" class="button" value="Cancel" />
</form>
答案 0 :(得分:0)
嗯,问题是括号。 JS真的很喜欢它们,即使没有它们,它们也不会开始工作。