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

时间:2014-05-26 06:35:46

标签: javascript php validation

我试图在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'>

,则使用相同的代码

5 个答案:

答案 0 :(得分:1)

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>

希望这会有所帮助:

答案 1 :(得分:1)

试试这段代码。它会起作用。

<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; 

答案 2 :(得分:1)

您必须进行two更改

1。更改textarea,因为textarea没有任何value标记。

<textarea name="userMsg" id="userMsg"><?= $_POST['userMsg'] ?>"></textarea>

2。JS function,因为如果您留下一些空格,则只会检查该编码,而textarea看起来像空白,请使用trim

var usermessage = document.forms["frm_contact"]["userMsg"].value;
usermessage =  usermessage.trim(); // include this for remove whitespaces
if(usermessage == '')
{

答案 3 :(得分:0)

只需删除textarea open标记和关闭标记之间的 space 即可。像这样使用

<textarea name="userMsg" id="userMsg"><?=$_POST['userMsg'];?></textarea>

不喜欢这个

<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 === '')

并且你的textarea有一个空格:)所以,这就是你的代码不工作的原因:)

答案 4 :(得分:0)

    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>