文本区域验证不工作在javascript php


text area validation not working in javascript php

我尝试在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",而不是使用

的id
document.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>