选择选项时运行脚本

时间:2015-11-02 21:48:03

标签: javascript jquery

所以我有一个计算器脚本,他在插入记录表格中做了一些计算。 为了运行,我希望它检查选择下拉菜单中的选项,因为我只希望它工作,当通过下拉菜单选择特定项目时。这是我的剧本。

<script type="text/javascript">
function MM_findObj(n, d) { //v4.01
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function KW_getVal(o){ //v1.2
var retVal="0";if (o.type=="select-one")
{retVal=(o.selectedIndex==-1)?0:o.options[o.selectedIndex].value;}
else if (o.length>1){for (var i=0;i<o.length;i++) if (o[i].checked) retVal=o[i].value;
} else if (o.type=="checkbox") {retVal=(o.checked)?o.value:0;} else {
retVal=Number(o.value)}return parseFloat(retVal);
}

function KW_calcForm() { //v1.2
var str="",a=KW_calcForm.arguments; for (var i=3;i<a.length;i++)
str+=(a[i].indexOf("#")==-1)?a[i]:KW_getVal(MM_findObj(a[i].substring(1)));
t=Math.round(a[1]*eval(str))/a[1];tS=t.toString();if(a[2]>0){tSp=tS.indexOf(".");
if(tSp==-1) tS+=".";tSp=tS.indexOf(".");while(tSp!=(tS.length-1-a[2])){tS+="0";
tSp=tS.indexOf(".");}} MM_findObj(a[0]).value=tS;
}
function KW_calcForm() { //v1.2
var str="",a=KW_calcForm.arguments; for (var i=3;i<a.length;i++)
str+=(a[i].indexOf("#")==-1)?a[i]:KW_getVal(MM_findObj(a[i].substring(1)));
t=Math.round(a[1]*eval(str))/a[1];tS=t.toString();if(a[2]>0){tSp=tS.indexOf(".");
if(tSp==-1) tS+=".";tSp=tS.indexOf(".");while(tSp!=(tS.length-1-a[2])){tS+="0";
tSp=tS.indexOf(".");}} MM_findObj(a[0]).value=tS;
}
 </script>

该脚本工作正常,但适用于下拉菜单中的所有选定选项,即

<td><select name="Operator">
    <option value="" <?php if (!(strcmp("", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>></option>
    <option value="Dani" <?php if (!(strcmp("Dani", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>>Dani</option>
    <option value="Costi" <?php if (!(strcmp("Costi", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>>Costi</option>
    <option value="Ioni" <?php if (!(strcmp("Ioni", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>>Ioni</option>
    <option value="Cristina" <?php if (!(strcmp("Cristina", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>>Cristina</option>
    <option value="Alex" <?php if (!(strcmp("Alex", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>>Alex</option>
    <option value="Roland" <?php if (!(strcmp("Roland", htmlentities($row_Recordset1['Operator'], ENT_COMPAT, 'utf-8')))) {echo "selected=\"selected\"";} ?>>Roland</option>
  </select></td>

当选择“Dani”时,我可以编写一些代码来运行此代码吗? 就像脚本的“if or else”选项一样

我尝试了这个但是没有用。

if ( $("#Operator") == Dani ) {

1 个答案:

答案 0 :(得分:2)

既然你正在使用jQuery,那么这样的事情如何:

$('select[name="Operator"]').on('change', function() {
    if($(this).val() == "Dani") {
        //do what you want here
    }    
});
上面的代码触发了变化,我现在认为这不是你的意思。

请参阅:https://jsfiddle.net/fwaam7at/

你可能需要这个:

if($('[name="Operator"]') == "Dani") {}

在您自己的示例中,您使用了'#Operator'作为选择器,但在jQuery中使用#,您需要查找ID而不是名称。