【问题标题】:Deactivate two buttons until submit is clicked停用两个按钮,直到单击提交
【发布时间】:2013-08-09 03:53:09
【问题描述】:

我需要知道如何在单击提交按钮之前停用两个按钮。我正在使用 Javascript 代码停用另外两个但不起作用。

这是我的表格:

<form name="receta" id="receta" method="post">
    <div class="row-fluid grid">
        <div class="span4">
            <label><b>Lugar: </b></label>
            <input type="text" class="input-block-level" value="" name="lugar" />
        </div>
        <div class="span4">
            <label><b>Nombre : </b></label>
            <input type="text" class="input-block-level" value="" name="nombre" />
        </div>
        <div class="span4">
            <label><b>Edad : </b></label>
            <input type="text" class="span4" value="" name="edad" />
        </div>
    </div>
    <div class="row-fluid grid">
        <div class="span4">
            <b>Pr&oacute;xima cita : </b>
            Ejemplo: En 5 semanas &oacute; 30 d&iacute;as.....
                <input class="input-block-level" name="receta" maxlength="50" value="" />      
        </div>
    </div>
<div class="row-fluid grid">
        <div class="span4">
    <button class="btn btn-inverse" type="submit" name="enviar" id="boton1" onclick="boton(this)">
         <i class="icon icon-save icon-white"></i> 
        <?php echo $translate->__('Save Prescription'); ?>
    </button>
</div>
<div class="span4">
    <a class="btn btn-primary" href="receta_edit.php" type="button" id="boton2" onclick="boton(this)" >
        <i class="icon icon-edit icon-white"></i> 
        <?php echo $translate->__('Edit Previous Prescription'); ?>
    </a>
</div>
<div class="span4">
    <a class="btn btn-info" href="imprecetahoy.php" type="button" id="boton2" target="popup" onClick="window.open(this.href, this.target, 'scrollbars=yes,toolbar=no,menubar=no,status=no,width=parent,height=parent'); return false;" onclick="boton(this)">
    <i class=" icon-print icon-white"></i>
    <?php echo $translate->__('View/Print last Prescription'); ?>
    </a>
</div>
</div>
</form> 

这是我尝试使用的 Javascript:

<script>
    function boton (obj)
    {
        if(obj.value=='boton 1')
        { document.getElementById('boton1').disabled="false";
        }
        if(obj.value=='boton 2')
        { document.getElementById('boton2').disabled="true";
        }
    }
</script>

这是 jsfiddle 中的脚本:

http://jsfiddle.net/HDx8E/

【问题讨论】:

  • 本例中只有一个按钮。是否要在单击“保存”之前禁用链接(编辑/打印)?

标签: javascript forms button dom-events


【解决方案1】:

我对你的问题有点困惑。您的脚本仅执行以下操作:

  • 如果boton1被点击,禁用它。
  • 如果点击boton2,则启用它。

换句话说,当您单击提交按钮时,您将禁用提交按钮。据我了解,这与您的意图无关。

原谅我;我不懂西班牙语。但是,您似乎想要的是禁用以下两个元素,直到单击您的submit(即boton1)。

<a class="btn btn-primary" href="receta_edit.php"  id="boton2" onclick="boton(this)" >

<a class="btn btn-info" href="imprecetahoy.php" target="popup" 
    onClick="window.open(this.href, this.target, 'scrollbars=yes,toolbar=no,
    menubar=no,status=no,width=parent,height=parent'); return false;"  
    id="boton2" onclick="boton(this)">

这里的问题是这两个链接具有相同的 id (boton2)。您应该将它们重命名为唯一的,最好是更有意义的名称,例如 receta_edit_linkimprecetahoy_link

然后,您可以在页面加载时禁用这两者,仅在单击提交按钮时启用它们,如下所示:

<script>
    function boton(obj) {
        if(obj.value == 'boton1') {
            document.getElementById('receta_edit_link').disabled='true';
            document.getElementById('imprecetahoy_link').disabled='true';
        }
    }
</script>

【讨论】:

    【解决方案2】:

    我终于找到了一些适合我的代码。这里是代码:

    <div class="span4">
            <button class="positive btn btn-inverse" type="submit" id="enviar" name="enviar" onclick="document.getElementById('edit').disabled=false;document.getElementById('imp').disabled=false;button(this);">
                <i class="icon icon-save icon-white"></i> 
                <?php echo $translate->__('Save Prescription'); ?>
            </button>
        </div>
        <div class="span4">
            <button class="negative btn btn-primary"  onclick="location.href='receta_edit.php" id="edit" disabled >
                <i class="icon icon-edit icon-white"></i> 
                <?php echo $translate->__('Edit Previous Prescription'); ?>
            </button>
        </div>
        <div class="span4">
            <button class="negative btn btn-info" onClick="myPopup()" id="imp" disabled >
                <i class=" icon-print icon-white"></i>
                <?php echo $translate->__('View/Print last Prescription'); ?>
            </button>
        </div>
    </div>
    

    现在使用此代码,按钮(编辑和打印)被激活,直到单击保存按钮,保存按钮将数据保存在表单中,其他两个按钮显示已保存的数据,唯一的错误是:

    ReferenceError: button is not defined
    

    错误是点击属性onclick中的保存按钮时:onclick="document.getElementById('edit').disabled=false;document.getElementById('imp').disabled=false;button(this);"

    这部分是“未定义”button(this);,现在我不知道如何修复它...

    最后我想在单击时禁用保存按钮...但我不知道该怎么做...

    不管怎样,如果这段代码对你有帮助,我猜。

    对不起,我的英语很差,但我总是说这不是我的母语,我尽力用英语解释我的意思

    亲切的问候!

    安德烈斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多