验证值取决于<选择值

时间:2019-09-15 15:08:50

标签: php jquery html

我不确定处理该问题的正确方法,我有一个表格,该表格根据选择的<select值将显示不同的输入字段(我将其设置为必填)

我粘贴了大部分代码,因为不确定要显示多少代码。

代码:

    <?php
        if (isset($_POST['new-campaign'])) {

            if (!empty($_POST['campaign_name'])) {

                $json = "";

                // which module have we selected ...
                if (get_module_slug($_POST['campaign_module']) == "module_clickbank") {
                    print "clickbank";
                }

                if (get_module_slug($_POST['campaign_module']) == "module_amazon_scraper") {
                    print "amazon scraper";
                }

                                    // code

                } catch (Exception $e) {
                    stderr($e->getMessage());
                } */

            } else {
                    stderr("There was an <b>error</b> adding the campaign: <b>{$_POST['campaign_name']}</b>.");
            }

        }
    ?>

    <!-- FORM -->
    <div class="card card-small mb-3">
      <div class="card-body">
        <form action="auto-poster.php" method="post" class="auto-poster">

          <p><small><span class="text-success">Enter a name for your your new campaign.</span></small></p>
          <input class="form-control form-control-lg mb-3" type="text" name="campaign_name" placeholder="" required="required" />         
          <hr>
            <p><small><span class="text-success">Select the module to run.</span></small></p>
            <select class="form-control" name="campaign_module" id="campaign_module">
            <option value="0">Please select a module for this campaign ...</option>
                <?php $cats = DB::getInstance()->select('SELECT * FROM `blog_modules` ORDER BY `module_date` DESC'); ?>
                    <?php foreach ($cats as $cat) { ?>
                        <option value="<?= $cat['module_id']; ?>"><?= htmlspecialchars($cat['module_name']) ?></option>
                    <?php } ?>
            </select>

          <div style='display:none;' id='clickbank'>

            <hr>
            <p><small><span class="text-success">Enter your Clickbank ID.</span></small></p>
             <input class="form-control form-control-lg mb-3" type="text" name="campaign_clickbank_id" placeholder="" required="required" />    

          </div>

          <div style='display:none;' id='amazon_scraper'>

            <hr>
            <p><small><span class="text-success">Enter your Amazon Associate ID.</span></small></p>
             <input class="form-control form-control-lg mb-3" type="text" name="campaign_amazon_id" placeholder="" required="required" />   

          </div>

          <hr>
          <button type="submit" name="new-campaign" class="btn btn-success"><i class="fas fa-plus"></i> Add Campaign</button>

        </form>
      </div>
    </div>
    <!-- / FORM -->

基本的JQuery代码是:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$('#campaign_module').on('change', function () {
    if (this.value == '1') {
        $("#clickbank").show();
    } else {
        $("#clickbank").hide();
    }

    if (this.value == '2') {
        $("#amazon_scraper").show();
    } else {
        $("#amazon_scraper").hide();
    }       

});
</script>

我的问题是,表单未提交。我知道原因是因为我在输入字段中设置了required="required",所以如果我在<form部分中输入了 novalidate ,则那些未显示的字段仍在寻找输入。 ,它有效,但这是正确的方法吗?

0 个答案:

没有答案