遗憾的是,我对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>
答案 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)
采取类似
的方式$( ".custom-pc" ) . change(function(){
if ( selid( "#idselect" ) )
{
$( "#button" ) . attr ( "enabled", "enabled" );
}
})
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);
}
});