我尝试在javascript中验证文本区域。
下面是PHP代码
<?php
error_reporting(0);
if(isset($_POST['submit']))
{
echo "hello";
}
?>
下面是javascript代码:
<script>
function formValidation()
{
var usermessage = document.forms["frm_contact"]["userMsg"].value;
if(usermessage === '')
{
alert("hello");
document.getElementById('userMsg').focus();
return false;
}
else
{
return true;
}
}
</script>
下面是HTML代码:
<form method="post" id="frm_contact" action="" onSubmit="return formValidation();">
<textarea name="userMsg" id="userMsg"><?= $_POST['userMsg'] ?> </textarea>
<input type="submit" value="check value" name="submit" onclick="return checkmessage();">
</form>
当我点击提交表单不验证javascript。找不到问题。但同样的代码,如果工作在<input type='text' name='userMsg'>
textarea
的值放置在像这样的标签之间:
<textarea name="..."> value </textarea>
你可以在这里修改:
<textarea name="userMsg" id="userMsg" value="<?= $_POST['userMsg'] ?>"> </textarea>
<textarea name="userMsg" id="userMsg" > <?= $_POST['userMsg'] ?></textarea>
如果你不使用onclick="return checkmessage();"
,我猜你可以删除它。
你的代码可以这样写:
<form method="post" id="frm_contact" action="" onSubmit="return formValidation();">
<textarea name="userMsg" id="userMsg"><?= $_POST['userMsg'] ?> </textarea>
<input type="submit" value="check value" name="submit">
</form>
试试下面的代码。会成功的。
<script>
function formValidation()
{
alert("hello");
var usermessage = document.forms["frm_contact"]["userMsg"].value;
if(usermessage=='')
{
alert("hello");
document.getElementById('userMsg').focus();
return false;
}
else
{
return true;
}
}
</script>
<form method="post" id="frm_contact" name="frm_contact" action="" onSubmit="return formValidation();">
<textarea name="userMsg" id="userMsg"><?= $_POST['userMsg'] ?></textarea>
<input type="submit" value="check value" name="submit" >
</form>
您必须将表单名称设置为"frm_contact",而不是使用
的iddocument.forms['form_name']['element_name'].value;
您必须进行two
更改
1。像这样改变textarea,因为textarea没有任何value
标签。
<textarea name="userMsg" id="userMsg"><?= $_POST['userMsg'] ?>"></textarea>
2。是JS function
,因为如果你只留下一些空白,条件不会检查,文本区域看起来像空白,所以使用trim
var usermessage = document.forms["frm_contact"]["userMsg"].value;
usermessage = usermessage.trim(); // include this for remove whitespaces
if(usermessage == '')
{
只需删除文本区打开标签和关闭标签之间的 space
。像这样使用
<textarea name="userMsg" id="userMsg"><?=$_POST['userMsg'];?></textarea>
not like this
<textarea name="userMsg" id="userMsg"><?=$_POST['userMsg'];?> </textarea>
完整代码:
<?php
error_reporting(0);
if(isset($_POST['submit'])){
echo 'Your input is: '.$_POST['userMsg'];
}
?>
<script>
function formValidation() {
var usermessage = document.forms["frm_contact"]["userMsg"].value;
if (usermessage === '') {
alert('Error: You missed the field');
document.getElementById('userMsg').focus();
return false;
} else {
return true;
}
}
</script>
<form method="post" id="frm_contact" action="" onSubmit="return formValidation();">
<textarea name="userMsg" id="userMsg"><?php echo $_POST['userMsg']; ?></textarea>
<input type="submit" value="check value" name="submit" onclick="return checkmessage();">
</form>
代码不工作的原因:
你正在验证javascript中没有空格的textarea
if (usermessage === '')
和你的文本区有一个空格:)所以,这就是你的代码不工作的原因:)
hope this will help
<script>
function formValidation()
{
var usermessage = document.forms["frm_contact"]["userMsg"].value;
if(usermessage === '')
{
alert("hello");
document.getElementById('userMsg').focus();
return false;
}
else
{
return true;
}
}
</script>
<?php
$usermsg=$_POST['userMsg'];
?>
<form method="post" id="frm_contact" action="" onSubmit="return formValidation();">
<textarea name="userMsg" id="userMsg"><?php if(isset($usermsg)){echo $usermsg;}?>
</textarea>
<input type="submit" value="check value" name="submit" onclick="return
checkmessage();">
</form>