简单的javascript函数启用按钮?

时间:2011-05-12 11:52:43

标签: php javascript html forms button

遗憾的是,我对JavaScript一无所知,请原谅我提出这样一个业余问题。

我有一个带有选择框的表单,每个表单旁边都有一个按钮。我已经禁用了按钮,我希望当用户在复选框中选择某些内容时启用该按钮。

这就是我现在提供的选择框和禁用按钮的产品。

<td style="width:125px;"><strong>Processor:</strong></td>
    <td style="width:420px;">
        <select class="custom-pc" name="processor">
            <option value=""></option>
                <?php
                $processor_query = @mysql_query("SELECT * FROM custom_pc_processor");
                while ($p_q = mysql_fetch_array($processor_query)) {
                    $id = $p_q['id'];
                    $name = $p_q['name'];
                    echo '<option value="'.$id.'">'.$name.'</option>';
                }
                ?>
        </select>
        <input name="processor_details" type="button" value="Details" disabled="disabled" />
    </td>

8 个答案:

答案 0 :(得分:1)

最简单的解决方案是向onchange元素添加select事件处理程序。例如(假设您的元素位于form):

<select onchange="this.form['processor_details'].disabled = false;" ...(rest of code)

答案 1 :(得分:1)

我建议jQuery获得最佳浏览器支持(以及编码的简易性):

$(function() {
   $('.custom-pc').change(function() {
     $(this).next('input').removeAttr('disabled');
  });
});

答案 2 :(得分:0)

您需要在选择框中放置一个函数onChange事件。

<select class="custom-pc" name="processor" onChange="return getEnable(this.form);">
            <option value=""></option>
                <?php
                $processor_query = @mysql_query("SELECT * FROM custom_pc_processor");
                while ($p_q = mysql_fetch_array($processor_query)) {
                    $id = $p_q['id'];
                    $name = $p_q['name'];
                    echo '<option value="'.$id.'">'.$name.'</option>';
                }
                ?>
        </select>

// Javascript函数如下所示。

function getEnable(frm){
  frm.processor_details.disabled = false;
  return true;
}

感谢。

答案 3 :(得分:0)

未经测试,但在我的头脑中这应该有用。

// Give your form a name, I'm using myform.
// Add an event to the onchange of the <select>
document.myform.processor.onchange = function() {
    // Enable the button
    document.myform.processor_details.disabled = false;
};

答案 4 :(得分:0)

你可以这样使用

<td style="width:125px;"><strong>Processor:</strong></td>
<td style="width:420px;">
    <select class="custom-pc" id="processor" name="processor" onChange='UpdateButton()">
        <option value=""></option>
            <?php
            $processor_query = @mysql_query("SELECT * FROM custom_pc_processor");
            while ($p_q = mysql_fetch_array($processor_query)) {
                $id = $p_q['id'];
                $name = $p_q['name'];
                echo '<option value="'.$id.'">'.$name.'</option>';
            }
            ?>
    </select>
    <input id="processor_details" name="processor_details" type="button" value="Details" disabled="disabled" />
</td>

...

<

script>
function UpdateButton()
{
var bDisable;
if (document.getElementById ("processor").value == '') // change the condition if required.
 bDisable = true;
else
 bDisable = false;

document.getElementById ("processor_details").disabled = bDisable;

}
</script>

答案 5 :(得分:0)

  1. 使用jQuery
  2. 采取类似

    的方式
    $( ".custom-pc" ) . change(function(){
      if ( selid( "#idselect" ) )
      {
        $( "#button" )  . attr ( "enabled", "enabled"  ); 
      } 
    })
    
  3. selid - function,显示所选元素的id。 function selid(name)//选择select元素的id,或者为false {   var id = false;   $(“#”+ name +“option:selected”)。each(function(){       id = $(this).val();    });    返回id; };

    抱歉,也许可以重写它以使其更有效。

    PS。另外 - 混合PHP和&amp; JS,在SO问题中,不是很好主意:)我确定:)

答案 6 :(得分:0)

如果没有jQuery,HTML BODY底部的以下代码块就足够了。

<script type="text/javascript">
 var ddl = document.getElementsByName('processor')[0];

 ddl.onchange = function () {

    document.getElementsByName('processor_details')[0].disabled = !this.value;

 };
</script>

如果您要在职业生涯中进行大量的Web开发,那么您真的需要学习JavaScript和DOM。 W3Schools将提供帮助,特别是this chapter

我建议学习jQuery。它将使您的生活更轻松1000倍,并使您对您选择的性别更具吸引力。

答案 7 :(得分:0)

试试这个(使用 jQuery v 1.6

$('select').change(function() {
    var op =$(this).val();
    if(op !=''){  
        $('input[name="processor_details"]').prop('disabled',false);
    }else{
        $('input[name="processor_details"]').prop('disabled', true);
    }      
});

DEMO