-1

これはおそらく以前に回答されており、再投稿して申し訳ありませんが、どこから修正を開始すればよいかわからないため、何を試して解決策を探すべきかわかりません. 我慢してください。

チュートリアルを使用して、必要な場所にフィールドを動的に追加した CMS のフォームがあります。例: フォームは箇条書きのフィールド エントリが 0 で読み込まれますが、いくつか必要な場合は、[箇条書きを追加] というボタンをクリックすると、エントリ フィールドが表示されます。配列になっています。DBに問題なく送信します。フィールドが表示されていない場合、削除ボタンは無効になっています。すべて正常に動作します。フィールドなしで開始する場合は、新しいフォームで。問題は、このフォームの編集バージョンにあります。

これが私のコードです:

<div id="bullets">
<?php
$sql_bullet_display = 'SELECT * FROM exampleDB.prod_feature_bullets WHERE product_name ="'.$row_product_details['product_name'].'";';
$res_bullet_display = mysql_query($sql_bullet_display) or die(mysql_error().'<br />bad query<br />'. $sql_bullet_display);
$newNum = 1;
while($row_bullet_display = mysql_fetch_assoc($res_bullet_display)){
?>
<div id="bullet<?php echo $newNum; ?>" class="clonedInput2">
<input type="hidden" id="bullet_order<?php echo $newNum; ?>" name="bullet[<?php echo $newNum; ?>][bullet_order]" value="<?php echo $newNum; ?>" />
<input type="text" id="bullet_text<?php echo $newNum; ?>" name="bullet[<?php echo $newNum; ?>][bullet_text]" value='<?php echo $row_bullet_display['bullet_text']; ?>' />
<input type="text" id="bullet_subtext<?php echo $newNum; ?>" name="bullet[<?php echo $newNum; ?>][bullet_subtext]" value='<?php echo $row_bullet_display['sub_text']; ?>' />
</div>
<?php
$newNum++;
}
?>
</div>
<div>
<input type="button" id="btnAdd" value="Add Bullet" />
<input type="button" id="btnDel" value="Remove Bullet" />
</div>

これはそれに付随する Javascript です。

<script type="text/javascript">
$(document).ready(function() {
    $('#btnAdd').click(function() {
        var num     = $('.clonedInput2').length; // how many "duplicatable" input fields we currently have
        var newNum  = new Number(num + 1);      // the numeric ID of the new input field being added

        $('<div id="bullet' + newNum + '" class="clonedInput2"><input type="hidden" id="bullet_order' + newNum + '" name="bullet[' + newNum + '][bullet_order]" value="' + newNum + '" /><input type="text" id="bullet_text' + newNum + '" name="bullet[' + newNum + '][bullet_text]" /><input type="text" id="bullet_subtext' + newNum + '" name="bullet[' + newNum + '][bullet_subtext]" /></div>').appendTo('#bullets'); 

        // enable the "remove" button
        $('#btnDel').attr('disabled',''); 

        // business rule: you can only add 15 bullets
        if (newNum == 15)
            $('#btnAdd').attr('disabled','disabled');
    });

    $('#btnDel').click(function() {
        var num = $('.clonedInput2').length; // how many "duplicatable" input fields we currently have
        $('#bullet' + num).remove();     // remove the last element

        // enable the "add" button
        $('#btnAdd').attr('disabled','');

        // if no element remains, disable the "remove" button
        if (num == 0)
            $('#btnDel').attr('disabled','disabled');
    });

    $('#btnDel').attr('disabled','disabled');
});

これは過去に私にとって非常にうまく機能しましたが、私が言ったように、0 の箇条書き入力フィールドから始まる新しいフォームでのみ機能します。私の問題は、編集フォームの作成にあります。編集を押したときに表示される DB には、既に 2 つの箇条書きがあります。追加ボタンが有効になっています。フォームが最初に表示されるとき、削除ボタンは常に無効になっています。2 つのエントリが表示され、すべてが正しく入力されていても。

ただし、追加ボタンをクリックすると、3 番目の入力フィールドが表示され、削除ボタンが有効になります。とてもイライラします。編集についてどうすればよいかわからないので、次のように表示されます。ページの読み込み時に、DB が既に 2 つの箇条書きを埋めていることを認識しているため、最初から削除ボタンがアクティブになっているはずです。これまでに試したすべての変更は、ボタンを壊すだけです。

助けてくれてありがとう!

4

2 に答える 2

1

無効な属性を削除するには、これを試してください

$("#btnDel").removeAttr("disabled");
于 2013-07-30T15:30:35.573 に答える