在发布到mysql之前验证提交时的多个textareas

时间:2012-08-29 08:42:23

标签: jquery validation

在我可以在mysql数据库中写入任何数据之前,我需要检查多个textareas是否为空。 表单是动态生成的,我不知道textareas的id / name。

表格包含多个动态生成的textareas,id和动态生成的名称:

<form action=\"$self\" method=\"POST\" id=\"daily_frm\"  enctype=\"multipart/form-data\">   
 <table border=\"1\" cellspacing=\"2\" cellpadding=\"2\" id=\"tb_daily\" class=\"tb_daily\" width=\"100%\">
  <tr>
  <th scope=\"col\" id=\"col_stn\">Station</th>
  <th scope=\"col\" id=\"col_comm\">Comment</th>
  <th scope=\"col\" id=\"qcif\">QCIF</th>
  <th scope=\"col\" id=\"attach\">Attachment</th>
 </tr>"; 

while ($stn_b = mysql_fetch_array($station_b)){
  print "<tr>
           <td>$stn_b[station]</td>
           <td><textarea id=\"$stn_b[station]_comment\" cols=\"60\" rows=\"5\" value=\"\"></textarea></td>
           <td><input type=\"checkbox\" id=\"$stn_b[station]_qcif\" value=\"1\"/></td>
          <td><input id=\"$stn_b[station]_attach\" type=\"file\" />
        </tr>       
        ";
}

print"
<tr><td colspan=\"4\"><input type=\"submit\" value=\"Submit\" name=\"submit_daily\" id=\"submit_daily\"><input type=\"reset\" name=\"clear_daily\" value=\"Clear\"></td></tr>
</table>
</form>

单击提交按钮时检查任何textarea是否为空的方法:

<script type='application/javascript'>

$(document).ready(function(){

    $('#daily_frm').submit( function () {
     $('#daily_frm textarea').each(function(){
     if ($(this).val()==='') {

    alert($(this).attr('id') + ' field is empty');
    $(this).focus();
    return false;

   }
 });
    });
});

我收到带有相应textarea名称的警告框。

我的PHP代码将所有内容写入db:

if (isset($_POST['submit_daily'])){

while ($stn_b = mysql_fetch_array($station_b)){
    $s = $stn_b['station'];
    $sid = $stn_b['idtb_station'];

    $daily_comment = addslashes($_POST[$s."_comment"]);


    if(!empty($_POST[$s."_qcif"])) {
        $qcif = $_POST[$s."_qcif"];
        echo "$qcif<br />"; 
    }   else {
        $qcif = "0";
    }


    $post_daily_sql = "INSERT INTO tb_daily tb_station_idtb_station,date,author,comment,upload) VALUES ('$sid','$today','$user','$daily_comment','$qcif')"; 
}   
}

我现在的问题是,如果是空文本区域,我将获得警告框,但我的脚本仍然继续尝试写入数据库(我知道php / mysql部分未完成)。 任何提示?谢谢!

1 个答案:

答案 0 :(得分:0)

尝试类似:

$(document).ready(function(){
    $('#daily_frm').submit( function (evt) {
        evt.preventDefault();
        var errCount = 0;
        $('#daily_frm textarea').each(function(){
            if ($(this).val()==='') {
                alert($(this).attr('id') + ' field is empty');
                $(this).focus();
                errCount++;
            }
        });
        if( errCount > 0 ) {
            reutrn false;
        }
        else {
            return true;
        }
    });
});