2 回答

TA貢獻1942條經驗 獲得超3個贊
我沒有看到任何 jQuery,但我認為你的意思是
$(function() {
$("[name=additionalFields]").on("change",function() {
$($(this).data("target")).toggle(this.checked);
}).trigger("change"); // initialise on load
})

TA貢獻1836條經驗 獲得超5個贊
在 html 重新加載時,如果單擊復選框,您需要手動預定義 js 事件的作用。如果您的意思是使用 data-toggle 是使用引導手風琴,那么您需要將類“show”添加到事件數據目標以顯示額外的輸入字段。所以試試這個:
<div class="form-group">
<label for="additionalFields" class="checkbox-inline ml-1 mb-0">Show additonal fields</label>
<input class="align-middle" type="checkbox" name="additionalFields" value="additionalFields" data-toggle="collapse" data-target="#fields" <?php if (isset($_POST['additonalFields'])) echo 'checked="checked"'; ?>>
</div>
<div class="form-group collapse in row <?php if (isset($_POST['additonalFields'])) echo 'show'; ?>" id="fields">
<div class="col-sm-6">
<label class="form-control-label ml-1 mb-xs-form" for="fieldOne">Field 1:</label>
<input class="form-control" type="text" id="fieldOne" name="fieldOne" maxlength="100" placeholder="Field 1"
<?php
if ($_POST && ($suspect || $errors || !($response->success))) {
echo 'value="' . htmlentities($fieldOne) . '"';
}
?>>
</div>
<div class="col-sm-6">
<label class="form-control-label ml-1 mt-3 mt-sm-0" for="fieldTwo">Field 2</label>
<input class="form-control" type="text" id="fieldTwo" name="fieldTwo" maxlength="100" placeholder="Field 2"
<?php
if ($_POST && ($suspect || $errors || !($response->success))) {
echo 'value="' . htmlentities($fieldTwo) . '"';
}
?>>
</div>
- 2 回答
- 0 關注
- 320 瀏覽
添加回答
舉報