【问题标题】:PHP- How to validate checkbox and textbox in php?PHP-如何在 php 中验证复选框和文本框?
【发布时间】:2017-06-09 06:16:22
【问题描述】:

Screenshot 我正在尝试验证一个复选框和多个文本框。文本框首先应该被禁用,并且只有在选中复选框时才应该启用。如果选中复选框的同一行上的文本框为空,则应弹出警报。

             <table class="table table-bordered"> 
    <tr align="center" style="background-color:black; color:white;">
               <tr> <td colspan="8" style="background-color:silver;"><input type="submit" class="btn btn-primary" id="addSPtoCart" name="addSPtoCart" value="Add To Cart" class="button-L" /></td></tr>
                <tr align="center" style="background-color:black; color:white;">    
               <td class="border"><span class="table-head"><label>Favorite</label></span></td>  
              <td><span class="table-head"><label>Material Code</label></span></td>
              <td><span class="table-head"><label>Material Desc</label></span></td>
              <td><span class="table-head"><label>Chart</label></span></td>
              <td><span class="table-head"><label>Shade</label></span></td>
              <td><span class="table-head"><label><?php echo $month1 ?></label></span></td>
              <td><span class="table-head"><label><?php echo $month2 ?></label></span></td>
              <td><span class="table-head"><label><?php echo $month3 ?></label></span></td>
              <!--<td class="no-border" align="center"><span class="table-head">Action</span></td>-->
             </tr>

    <tr class="abc" align="center">
                  <style>.abc:nth-child(even){background-color: silver;}</style>  
                <td><input type="checkbox" name="fav[]" id="fav[]" value="<?php echo $d['materialID']; ?>" /></td>
              <td><label><?php echo $d['materialCode']; ?></label></td>
              <td><label><?php echo $d['materialDesc']; ?></label></td>
              <td><label><?php echo $d['chart']; ?></label></td>
              <td><label><?php echo $d['shade']; ?></label></td>
              <td><input type="text"   class="form-control" style="width:80px; " size ="5" name="qty_1<?php echo $d['materialID'] ?>" id="qty_1<?php echo $d['materialID'] ?>" value =<?php echo $var1 ?> ></td>
              <td><input type="text"   class="form-control" style="width:80px;" size ="5" name="qty_2<?php echo $d['materialID'] ?>" id="qty_2<?php echo $d['materialID'] ?>" value =<?php echo $var2 ?> ></td>
              <td><input type="text"  class="form-control" style="width:80px;" size ="5" name="qty_3<?php echo $d['materialID'] ?>" id="qty_3<?php echo $d['materialID'] ?>" value =<?php echo $var3 ?> ></td>

            <!--  <td class="no-border" align="center"><a href="<?php //echo SITEURL; ?>/salesplan/salesplan-details/?id=<?php //echo $d['mmID']; ?>&mCatID=<?php// echo $_REQUEST["mCatID"];?>  ">View</a></td> -->

            </tr>

               <tr><td colspan="8"><input type="submit" class="btn btn-primary" id="addSPtoCart" name="addSPtoCart" value="Add To Cart" class="button-L" /></td></tr>

</table>

 <script type="text/javascript">
function validateForm() {
    var x = document.forms["frmFav"]["qty_1"].value;
        var y = document.forms["frmFav"]["qty_2"].value;
            var z = document.forms["frmFav"]["qty_3"].value;
            //var a = document.forms["frmFav"]["fav"].value;



    if ((x == "") || (!this.frmFav.fav.checked)) {
        alert("This field cannot be left empty !");
        return false;
    }
}
</script>

【问题讨论】:

  • 你有没有尝试过?
  • 提供你尝试过的 jsfiddle 链接?
  • @AbhaySinghania..refer this fiddle demo
  • 明确一点:您在问题中包含的验证代码是 JavaScript。您将需要在 PHP 中验证它以及在 JavaScript 中,因为用户可以绕过浏览器中的 JavaScript,因此您不能依赖正在完成的 JS 验证。

标签: javascript php twitter-bootstrap


【解决方案1】:

您应该对按钮进行 onclick 操作以调用 validateForm() 函数

<input type="submit" class="btn btn-primary" id="addSPtoCart" name="addSPtoCart" value="Add To Cart" class="button-L" onclick="return validateForm()"/>

要启用和禁用文本框,请先放置一个禁用属性

<td><input type="text"   class="form-control" style="width:80px; " size ="5" name="qty_1<?php echo $d['materialID'] ?>" id="qty_1<?php echo $d['materialID'] ?>" value =<?php echo $var1 ?> disabled></td>

以及触发启用和禁用框的功能

 function checkboxchange(x){
 var formcontrol = x.parentNode.parentNode.getElementsByClassName("form-control");
 for (var i = 0; i < formcontrol.length; i++){
     if(formcontrol[i].disabled)
        formcontrol[i].disabled = false;
    else
        formcontrol[i].disabled = true;
 }
}

并在复选框中添加函数调用

<td><input type="checkbox" name="fav[]" id="fav[]" value="<?php echo $d['materialID']; ?>" onchange="checkboxchange(this)"/></td>

希望有所帮助

更新 validateForm() 函数

function validateForm() {
var validate = document.querySelectorAll(".form-control:not(:disabled)");
for (var i = 0; i < validate.length; i++){
    if (validate[i].value=="") {
        alert("This field cannot be left empty !");
        return false;
    }
}
}

【讨论】:

  • 谢谢伙计。复选框功能有效,但必填字段验证无效。
  • 同样在复选框选择所有文本框被启用。我只想启用和禁用与复选框在同一行的 texboxes。
  • 哦...我为复选框一进行了编辑。为复选框html添加一个this,以及功能更改。现在应该只对选中的行没问题
  • 对于验证功能,它应该在您的 validateForm() 功能中完成......您最好在提交之前检查您要检查的内容
  • 非常感谢兄弟。你是一个救生员:D
猜你喜欢
  • 2011-10-11
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
相关资源
最近更新 更多