停用两个按钮,直到单击提交

时间:2013-08-07 16:41:47

标签: forms button javascript-events

我需要知道如何在单击提交按钮之前停用两个按钮。我正在使用一个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/

2 个答案:

答案 0 :(得分:0)

我对你的问题感到有些困惑。您的脚本只执行以下操作:

  • 如果点击boton1,请将其停用。
  • 如果点击boton2,则启用它。

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

原谅我;我不懂西班牙语。但是,在您点击submitboton1)之前,似乎您想要停用以下两个元素。

<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>

答案 1 :(得分:0)

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

<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);,现在我不知道如何解决它......

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

无论如何,如果这段代码可以帮助你,那就是我的猜测。

抱歉我的英语不好,但总是说我不是母语,我尽力用英语解释我

亲切的问候!

安德烈