我不确定处理该问题的正确方法,我有一个表格,该表格根据选择的<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 ,则那些未显示的字段仍在寻找输入。 ,它有效,但这是正确的方法吗?