如何实现select不同值使得input不可用或者可用?

时间:2022-08-26 12:59:47
比如,select 1,让<input>可用,select 2 让<input>不可用,要实时的变化。


没分了,就这点了~

11 个解决方案

#1


写个简单的例子
<script>

function disableit(controller)
{

if (controller.children[controller.selectedIndex].value=="")
{

document.getElementById("checkbox1").disabled=false;
document.getElementById("checkbox2").disabled=false;
}


if (controller.children[controller.selectedIndex].value==1)
{

document.getElementById("checkbox1").disabled=true;
document.getElementById("checkbox2").disabled=false;
}

if (controller.children[controller.selectedIndex].value==2)
{

document.getElementById("checkbox1").disabled=false;
document.getElementById("checkbox2").disabled=true;
}


}

</script>

<input type="checkbox" name="checkbox1">1<br>
<input type="checkbox" name="checkbox2">2<br>

<select name="sel1" onchange="disableit(this)">
<option value="">请选择</option>
<option value=1>禁止1</option>
<option value=2>禁止2</option>

</select>

#2


哈,如果要两个都可用或者不可用
同时调整两个元素的disabled属性就可以了。

#3


就是用javascript根据select所选的值来控制checkbox的disabled属性。

#4


楼上说的很对,简单的一个本页面提交,再加上一个简单的判断就可以了^

#5


呵呵  感谢 zorou_fatal(粘人的"她"(^_^)) 【你到底是MM还是哥们?】

在初次使用添加到数据库后再次调出修改,希望能取出原值,这时属性不能为disabled了吧?但是使用readonly有问题,不能像开始添加时那样改变了~

哪位再帮帮忙?

#6


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>群发短信</title>
<script language="JavaScript"> 

<!--

function checkMaxInput(form)
{
imax = form.msgBody.value.length;
form.count.value = imax;
if( imax>70)
form.msgBody.value=form.msgBody.value.substring(0,70);
}
function sel(theform)
{
var temp,FeeSevID,ywmc,SrcPhone,FeeCode,FeeType,Service;
temp="YXS,18030,181200,1681,1682,TL50,WEB10,0";
FeeSevID=temp.split(",");
temp="天运神喻,足彩专家建议,足彩临场推介,游戏大观园100点,游戏大观园200点,图片铃声下载,网站在线发短信,免费";
ywmc=temp.split(",");
temp="878801,8788,8788,878808,878808,8788,8788,8788";
SrcPhone=temp.split(",");
temp="50,30,200,100,200,50,10,0";
FeeCode=temp.split(",");
temp="2,2,2,2,2,2,2,1";
FeeType=temp.split(",");
temp="1,1,1,1,1,1,1,0";
Service=temp.split(",");
var i;
for (i=0;i<8;i++)
{
if ( theform.FeeSevID.value == FeeSevID[i] )
{
theform.ywmc.value=ywmc[i];
theform.SrcPhone.value=SrcPhone[i];
theform.FeeCode.value=FeeCode[i];
theform.FeeType.value=FeeType[i];
theform.Service.value=Service[i];
}
}
}
//-->

</script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<%
if request.QueryString("action")="save" then
response.Write("<script>alert('发送成功');</script>")
end if
%>
  <table width="768" border="0" align="center">
<form name="form" method="post" action="sendall.asp?action=save">
    <tr> 
      <td width="142">接收手机号码<br>
多个号码之间用回车换行</td>
      <td width="348"><textarea name="telephone" cols="50" rows="6" wrap="VIRTUAL" id="telephone"><%= telephone%></textarea>
      </td>
    </tr>
    <tr> 
      <td valign="top">消息内容:<br>
        (不超过70个字) <br>
        已输入字符数: 
        <INPUT NAME="count" TYPE="text" size="3" readonly>
      </td>
      <td><textarea name="msgBody" cols="50" rows="6" wrap="VIRTUAL" onKeyDown="checkMaxInput(this.form)" onKeyUp="checkMaxInput(this.form)"></textarea></td>
    </tr>
    <tr> 
      <td valign="top">&nbsp;      </td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="top">&nbsp;      </td>
      <td>
        <table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>业务代码:
      <select name="FeeSevID" id="FeeSevID" onChange="sel(this.form)">
        <option value="0" selected>免费</option>
        <option value="YXS">YXS</option>
        <option value="18030">18030</option>
        <option value="181200">181200</option>
        <option value="1681">1681</option>
        <option value="1682">1682</option>
        <option value="TL50">TL50</option>
        <option value="WEB10">WEB10</option>
              </select>
      <input name="Service" type="hidden" id="Service" value="0">
      <input name="FeeType" type="hidden" id="FeeType" value="1"></td>
    <td>业务名称:
      <input name="ywmc" type="text" id="ywmc" value="免费" size="20" readonly="true"></td>
  </tr>
  <tr>
    <td>发送端口:
      <input name="SrcPhone" type="text" id="SrcPhone" value="8788" size="6" maxlength="6"></td>
    <td>资&nbsp;&nbsp;&nbsp;&nbsp;费:
      <input name="FeeCode" type="text" id="FeeCode" value="0" size="4" readonly="true">
分</td>
  </tr>
</table>
</td>
    </tr>
    <tr>
      <td valign="top">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td colspan="2"><div align="center">
  <input type="submit" name="Submit" value="发送">
&nbsp;&nbsp;
  <input type="button" name="Submit2" value="返回" onClick="document.location='main.asp'">
      </div></td>
    </tr>
</form>
</table>
  <br>
</body>
</html>

#7


在初次使用添加到数据库后再次调出修改,希望能取出原值,这时属性不能为disabled了吧?但是使用readonly有问题,不能像开始添加时那样改变了~

不明白你的意思
说清楚点

#8


顺便说句闲话
偶是 100 percent 的GG

#9


呵呵  纯属误会~
ok  尽量发挥我的表达能力:

我使用你的方法是在第一次提交表单给数据库的时候用的,这个表单是新的,不从数据库取数据,只给数据库提交数据;当遇到第二个表单时是修改第一次提交的表单内容,当然要先取出数据库的相关内容,但是这个时候不能使用disabled,因为它的内容不会被post,所以只能使用readonly(不知这个想法对不对?),这种情况应该怎样解决呢?

#10


up

#11


可以使用readonly,方法一样

#1


写个简单的例子
<script>

function disableit(controller)
{

if (controller.children[controller.selectedIndex].value=="")
{

document.getElementById("checkbox1").disabled=false;
document.getElementById("checkbox2").disabled=false;
}


if (controller.children[controller.selectedIndex].value==1)
{

document.getElementById("checkbox1").disabled=true;
document.getElementById("checkbox2").disabled=false;
}

if (controller.children[controller.selectedIndex].value==2)
{

document.getElementById("checkbox1").disabled=false;
document.getElementById("checkbox2").disabled=true;
}


}

</script>

<input type="checkbox" name="checkbox1">1<br>
<input type="checkbox" name="checkbox2">2<br>

<select name="sel1" onchange="disableit(this)">
<option value="">请选择</option>
<option value=1>禁止1</option>
<option value=2>禁止2</option>

</select>

#2


哈,如果要两个都可用或者不可用
同时调整两个元素的disabled属性就可以了。

#3


就是用javascript根据select所选的值来控制checkbox的disabled属性。

#4


楼上说的很对,简单的一个本页面提交,再加上一个简单的判断就可以了^

#5


呵呵  感谢 zorou_fatal(粘人的"她"(^_^)) 【你到底是MM还是哥们?】

在初次使用添加到数据库后再次调出修改,希望能取出原值,这时属性不能为disabled了吧?但是使用readonly有问题,不能像开始添加时那样改变了~

哪位再帮帮忙?

#6


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>群发短信</title>
<script language="JavaScript"> 

<!--

function checkMaxInput(form)
{
imax = form.msgBody.value.length;
form.count.value = imax;
if( imax>70)
form.msgBody.value=form.msgBody.value.substring(0,70);
}
function sel(theform)
{
var temp,FeeSevID,ywmc,SrcPhone,FeeCode,FeeType,Service;
temp="YXS,18030,181200,1681,1682,TL50,WEB10,0";
FeeSevID=temp.split(",");
temp="天运神喻,足彩专家建议,足彩临场推介,游戏大观园100点,游戏大观园200点,图片铃声下载,网站在线发短信,免费";
ywmc=temp.split(",");
temp="878801,8788,8788,878808,878808,8788,8788,8788";
SrcPhone=temp.split(",");
temp="50,30,200,100,200,50,10,0";
FeeCode=temp.split(",");
temp="2,2,2,2,2,2,2,1";
FeeType=temp.split(",");
temp="1,1,1,1,1,1,1,0";
Service=temp.split(",");
var i;
for (i=0;i<8;i++)
{
if ( theform.FeeSevID.value == FeeSevID[i] )
{
theform.ywmc.value=ywmc[i];
theform.SrcPhone.value=SrcPhone[i];
theform.FeeCode.value=FeeCode[i];
theform.FeeType.value=FeeType[i];
theform.Service.value=Service[i];
}
}
}
//-->

</script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<%
if request.QueryString("action")="save" then
response.Write("<script>alert('发送成功');</script>")
end if
%>
  <table width="768" border="0" align="center">
<form name="form" method="post" action="sendall.asp?action=save">
    <tr> 
      <td width="142">接收手机号码<br>
多个号码之间用回车换行</td>
      <td width="348"><textarea name="telephone" cols="50" rows="6" wrap="VIRTUAL" id="telephone"><%= telephone%></textarea>
      </td>
    </tr>
    <tr> 
      <td valign="top">消息内容:<br>
        (不超过70个字) <br>
        已输入字符数: 
        <INPUT NAME="count" TYPE="text" size="3" readonly>
      </td>
      <td><textarea name="msgBody" cols="50" rows="6" wrap="VIRTUAL" onKeyDown="checkMaxInput(this.form)" onKeyUp="checkMaxInput(this.form)"></textarea></td>
    </tr>
    <tr> 
      <td valign="top">&nbsp;      </td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="top">&nbsp;      </td>
      <td>
        <table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>业务代码:
      <select name="FeeSevID" id="FeeSevID" onChange="sel(this.form)">
        <option value="0" selected>免费</option>
        <option value="YXS">YXS</option>
        <option value="18030">18030</option>
        <option value="181200">181200</option>
        <option value="1681">1681</option>
        <option value="1682">1682</option>
        <option value="TL50">TL50</option>
        <option value="WEB10">WEB10</option>
              </select>
      <input name="Service" type="hidden" id="Service" value="0">
      <input name="FeeType" type="hidden" id="FeeType" value="1"></td>
    <td>业务名称:
      <input name="ywmc" type="text" id="ywmc" value="免费" size="20" readonly="true"></td>
  </tr>
  <tr>
    <td>发送端口:
      <input name="SrcPhone" type="text" id="SrcPhone" value="8788" size="6" maxlength="6"></td>
    <td>资&nbsp;&nbsp;&nbsp;&nbsp;费:
      <input name="FeeCode" type="text" id="FeeCode" value="0" size="4" readonly="true">
分</td>
  </tr>
</table>
</td>
    </tr>
    <tr>
      <td valign="top">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td colspan="2"><div align="center">
  <input type="submit" name="Submit" value="发送">
&nbsp;&nbsp;
  <input type="button" name="Submit2" value="返回" onClick="document.location='main.asp'">
      </div></td>
    </tr>
</form>
</table>
  <br>
</body>
</html>

#7


在初次使用添加到数据库后再次调出修改,希望能取出原值,这时属性不能为disabled了吧?但是使用readonly有问题,不能像开始添加时那样改变了~

不明白你的意思
说清楚点

#8


顺便说句闲话
偶是 100 percent 的GG

#9


呵呵  纯属误会~
ok  尽量发挥我的表达能力:

我使用你的方法是在第一次提交表单给数据库的时候用的,这个表单是新的,不从数据库取数据,只给数据库提交数据;当遇到第二个表单时是修改第一次提交的表单内容,当然要先取出数据库的相关内容,但是这个时候不能使用disabled,因为它的内容不会被post,所以只能使用readonly(不知这个想法对不对?),这种情况应该怎样解决呢?

#10


up

#11


可以使用readonly,方法一样