Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript按钮始终处于禁用状态_Javascript_Jquery - Fatal编程技术网

javascript按钮始终处于禁用状态

javascript按钮始终处于禁用状态,javascript,jquery,Javascript,Jquery,这可能已经被回答过了,我想为重新发布道歉,但是因为我不确定从哪里开始修复它,我不确定应该尝试什么来寻找解决方案。所以请容忍我 我有一个CMS的表单,我使用了一个教程来动态添加我需要的字段。例如:表单加载了0个项目符号字段条目,但是如果他们想要一些,他们可以单击一个显示为addbullet的按钮,瞧,一个条目字段出现了。它在一个数组中。提交给DB很好。如果没有显示任何字段,则“删除”按钮将被禁用。一切都很好。如果开始时没有字段,则使用新表单。该问题属于此表单的编辑版本 这是我的密码: <di

这可能已经被回答过了,我想为重新发布道歉,但是因为我不确定从哪里开始修复它,我不确定应该尝试什么来寻找解决方案。所以请容忍我

我有一个CMS的表单,我使用了一个教程来动态添加我需要的字段。例如:表单加载了0个项目符号字段条目,但是如果他们想要一些,他们可以单击一个显示为addbullet的按钮,瞧,一个条目字段出现了。它在一个数组中。提交给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');
});

$(文档).ready(函数(){
$('#btnAdd')。单击(函数(){
var num=$('.clonedInput2').length;//当前有多少个“可复制”输入字段
var newNum=newnumber(num+1);//正在添加的新输入字段的数字ID
$('')。附加到('项目符号');
//启用“删除”按钮
$('btnDel').attr('disabled','');
//业务规则:您只能添加15个项目符号
如果(newNum==15)
$('btnAdd').attr('disabled','disabled');
});
$('#btnDel')。单击(函数(){
var num=$('.clonedInput2').length;//当前有多少个“可复制”输入字段
$('#bullet'+num).remove();//删除最后一个元素
//启用“添加”按钮
$('btnAdd').attr('disabled','');
//如果没有剩余元素,请禁用“删除”按钮
如果(num==0)
$('btnDel').attr('disabled','disabled');
});
$('btnDel').attr('disabled','disabled');
});

这在过去对我来说非常有效,但正如我所说的,它只适用于一个从0个项目符号输入字段开始的新表单。我的问题在于创建编辑表单。我已经在数据库中有两个项目符号,当你点击编辑时会显示出来。添加按钮显示已启用。当表单第一次出现时,“删除”按钮始终处于禁用状态。即使显示了两个条目,并且所有内容都已正确填写

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


提前感谢您的帮助

尝试此操作以删除禁用的属性

$("#btnDel").removeAttr("disabled");

在javascript代码中,您已初始化要禁用的deletebutton。您需要检查从db创建的项目符号数

从以下位置修改上一个代码:

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


if($('.clonedInput2')。纵向是
$(''btnAdd')。attr('disabled','')
???disabled是一个标记属性。如果它在那里,它将被禁用-无论值如何。使用
prop
-
$(…).prop('disabled',true)
将任何属性('disabled','')更改为prop('disabled',false)和任何属性('disabled','disabled')为prop('disabled',true)。这会使删除按钮显示为活动状态,并显示项目符号。但现在,如果我点击删除按钮直到没有更多字段,它不会禁用。将一个问题转换为另一个问题?然后,当你在删除功能中删除任何字段时,你必须去检查是否有任何剩余字段。如果你在删除后仍然有字段u删除您按下的删除按钮,您将保持按钮处于活动状态,否则您将禁用它。为什么不
.prop('disabled',false)
这是首选方法,而不是$('btnDel').attr('disabled','')?或者我应该把它放在别的地方吗?它在替换上不起作用。如果我把它放在文档中也不起作用。准备好启用它了吗?我是这样做的,伙计。我必须承认我自己直到现在都不知道这个prop方法。@sjvargason
$(“#btnDel”).removeAttr(“禁用”);
相当于
$(“#btnDel”).prop('disabled',false)
只是按照DOC@Harry至少.removeAttr(“disabled”);的工作方式与OP使用的方式不同:
.attr(“disabled”),“”
if($('.clonedInput2').length<=0){
   $('#btnDel').attr('disabled','disabled');
}