只有选中复选框,PHP才会提交表单

时间:2015-12-21 11:42:37

标签: javascript checkbox

我有一个带有复选框和输入文本的表单。这是我的表格:

<form action="index.php?option=com_platiniumchristmas&view=success" method="post">
  <label>
    <input type="checkbox" name="termsConditions" id="chbx" value="Yes" onclick="foo()" />
    <?php echo JText::_( 'COM_PLATINIUMCHRISTMAS_TERMSCONDITIONS_TEXT');?>
  </label>
  <input type="submit" value="Emitir Voucher" class="btn btn-success" style="float: right" />
  <div style="overflow: hidden; padding-right: .5em;">
    <input type="text" name="friendName" style="width: 100%;" />
    <input type="hidden" name="canal" value="<?php echo $_POST[" canal "]; ?>"/>
  </div>
</form>

如果选中了复选框值,则只需提交表单。我怎么能这样做呢。我尝试过使用javascript但没有成功。

我尝试使用的javascript:

<script type=”text/javascript”>
var checkbox = document.getElementById("chbx");
 function foo(){
   if(checkbox.checked){
     alert("meap");
  };
 };
</script>

4 个答案:

答案 0 :(得分:1)

您根本不需要JavaScript。只需使用constraint validation APIrequired属性。

<form action="index.php?option=com_platiniumchristmas&view=success" method="post">
  <label>
    <input type="checkbox" name="termsConditions" id="chbx" value="Yes" required />
    <?php echo JText::_( 'COM_PLATINIUMCHRISTMAS_TERMSCONDITIONS_TEXT');?>
  </label>
  <input type="submit" value="Emitir Voucher" class="btn btn-success" style="float: right" />
  <div style="overflow: hidden; padding-right: .5em;">
    <input type="text" name="friendName" style="width: 100%;" />
    <input type="hidden" name="canal" value="<?php echo $_POST[" canal "]; ?>"/>
  </div>
</form>

除非选中复选框,否则这将停止提交表单。请记住,您仍然需要始终进行后端验证以进行验证,因为如果有足够的工作量,请求可以伪造。

答案 1 :(得分:0)

尝试完整的例子,它应该可以工作。

然后更正您的代码。

<!DOCTYPE html> <html> <head> <script> function validateForm() {
    var x = document.forms["myForm"]["fname"].value;
    if (x == null || x == "") {
        alert("Name must be filled out");
        return false;
    } } </script> </head> <body>

<form name="myForm" action="index.php" onsubmit="return validateForm()" method="post"> Name: <input type="text" name="fname"> <input type="submit" value="Submit"> </form>

</body> </html>

由于 阿米特

答案 2 :(得分:0)

$("#form").submit(function(e) {
    if(!$('input[type=checkbox]:checked').length) {
        alert("Please select the checkbox.");

        //stop the form from submitting
        return false;
    }

    return true;
});

<form id='form'>
    <div>
        <input type="checkbox" name="option-1" id="option-1"> <label for="option-1">Option 1</label>
   </div>
    <div>
        <input type="submit" value="Do thing" >
    </div>
</form>

使用此

答案 3 :(得分:-1)

您丢失了代码中的上下文。尝试:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/task
    http://www.springframework.org/schema/task/spring-task-3.2.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.2.xsd">

    <context:component-scan base-package="com.profiles" />

    <context:annotation-config/>

    <bean id="msa"
        class="org.springframework.context.support.MessageSourceAccessor"></bean>

    <bean id="audioCaptchaServlet" class="profiles.captcha.AudioCaptchaServlet"></bean>

</beans>