-1

这可能以前已经回答过,我想为重新发布而道歉,但由于我不确定从哪里开始修复它,我不确定该尝试什么并寻找解决方案。所以请多多包涵。

我有一个 CMS 表单,我使用教程在需要的地方动态添加字段。例如:表单加载了项目符号点的 0 个字段条目,但如果他们想要一些,他们可以单击一个按钮,上面写着添加项目符号,瞧,一个条目字段出现。它在一个数组中。提交给数据库就好了。如果没有显示任何字段,删除按钮将被禁用。一切正常。如果您从没有字段开始,请使用新表单。问题属于此表单的编辑版本。

这是我的代码:

<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 项目符号输入字段开始的新表单。我的问题在于创建编辑表单。当您点击编辑时,我已经在数据库中显示了两个项目符号。添加按钮显示已启用。表单首次出现时,删除按钮始终处于禁用状态。即使显示了两个条目并且所有内容都正确填写。

但是,如果我单击添加按钮,则会显示第三个输入字段,它将启用删除按钮。非常令人沮丧。我不确定要编辑什么,所以它会说:好的,在页面加载时,我们认识到数据库已经填写了两个项目符号,所以删除按钮应该从一开始就处于活动状态。到目前为止,我尝试的每一个更改都只是破坏了按钮。

在此先感谢您的帮助!

4

2 回答 2

1

试试这个来删除 disabled 属性

$("#btnDel").removeAttr("disabled");
于 2013-07-30T15:30:35.573 回答
1

在您的 javascript 代码中,您已将删除按钮初始化为禁用。您需要检查从 db 创建的项目符号数...

修改您的最后一个代码:

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

if($('.clonedInput2').length<=0){
   $('#btnDel').attr('disabled','disabled');
}
于 2013-07-30T15:39:29.227 回答