2014-01-21 37 views
0

我的腳本代碼:的JavaScript代碼在Mozilla和Chrome,但不是在IE

function trigonchange(){ 
    select_id =$("#trig_method").value; 

    if(select_id == "script") { 
     $("#one").css("visibilty","visible"); 
     $("#a").css("visibilty","visible"); 
     $("#three").css("visibilty","visible"); 
     $("#threea").css("visibilty","visible"); 
     $("#threeb").css("visibilty","visible"); 
     $("#two").css("visibilty","hidden"); 
     $("#four").css("visibilty","hidden"); 
    } 
    else { 
     $('#two').css("visibility","visible"); 
     $('#four').css("visibilty","visible"); 
     $('#one').css("visibilty","hidden"); 
     $('#a').css("visibilty","hidden"); 
     $('#three').css("visibilty","hidden"); 
     $('#threea').css("visibilty","hidden"); 
     $('#threeb').css("visibilty","hidden"); 
    } 
} 

HTML

<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
$(document).ready(function) { 
    $("#trig_method").change(trigonchange()); 
} 
</script> 

</head> 
<body> 
<form action="test_management.cgi" name="input" onsubmit="return(validatefrm());" style="margin-left:0%;" method="POST" enctype="multipart/form-data"> 
<table cellspacing="10"> 
<tr><td>Test Case Name</td><td><input type="text" name="tc_id" size="40"></td></tr> 
<tr></tr> 
<tr></tr><tr></tr> 
<tr><td>Category</td><td><select name="category" id="cat"> 
<option val="server">server</option> 
<option val="network">network</option> 
<option val="storage">storage</option> 
</select></td></tr> 
<tr></tr><tr></tr> 
<tr></tr><tr></tr> 
<tr><td>Sub-Category</td><td><select name="itemdata" id="item"> 
</select></td></tr> 
<tr></tr><tr></tr><tr></tr> 
<tr><td>Trigger Method</td><td> 
<select name="trig_method" id="trig_method" onchange="trigonchange();this.selectedIndex=this.defaultIndex;" onfocus="this.defaultIndex=this.selectedIndex;"> 
<option value="cmd">CMD</option> 
<option value="script">SCRIPT</option> 
</select></td></tr><tr></tr><tr></tr> 
<tr id="two"> 
<td style="width:40%;">Enter the command </td> 
<td> 
<input class="mg" type="text" size="40" name="cmd"> 
</td> 
</tr> 
<tr id="one" style="visibility: hidden;"><td style="width:40%;">Specify a script path</td><td> 
<input type="file" id= "script" name="script" size="40"></td></tr> 
<tr id="a" style="visibility: hidden;"><td>OR</td></tr> 
<tr id="t" style="visibility: hidden;"><td style="width:40%;"> Specify the UNIX path</td><td><input type="text" id="script" size="40"/></td></tr> 
<tr id="four"><td style="width:40%;">Please specify the exepected output in case of CMD</td> 
<td><textarea name="cmd_verification" cols="30" rows="5" id="ta" ></textarea> 
<tr id="three" style="visibility: hidden;"><td style="width:40%;">Specify the Config File </td> 
<td><input type="file" siz="40"></td></tr><tr id="threea" style="visibility:hidden;"><td>OR</td></tr> 
<tr id="threeb" style="visibility:hidden;"><td style="width:40%;">Specify the Config file unix path</td><td><input type="text" size="40" class="mg"/></td></tr> 
<tr></tr><tr><td>Testcase Description</td><td><textarea name="test_description" cols="30" rows="5"></textarea></td></tr><tr></tr><tr></tr> 
<tr><td></td><td><input type="submit" id="b" value="Submit"></td></tr> 
</table></form> 
</body> 

我想顯示/隱藏字段onchanging下拉(CMD /腳本)。它在Mozilla和Chrome上完美工作,但不在IE中。我已經添加了你們所有的建議並編輯了代碼。但它仍然不工作(現在它不能在任何瀏覽器中工作)

+0

什麼版本的IE?它可能不喜歡數字ID,請嘗試更改它們以字母開頭。 – Barmar

+0

@ barmar.in IE8不工作 – user3217945

+2

' '髒 –

回答

2

您不能在元素中兩次使用相同的屬性。如果您想在onchange中執行多項操作,請將它們置於單一屬性中,並由;分隔。

<select name="trig_method" id="trig_method" onchange="trigonchange();this.selectedIndex=this.defaultIndex;" onfocus="this.defaultIndex=this.selectedIndex;"> 
0

在選項中使用「值」而不是「Val」。與選項中的值進行比較。這是CMD而不是CMD。

+0

1)更改id名稱2)onchange也組合在一起3)更改val ti值和comapared cmd與腳本。仍然沒有工作:( – user3217945

+0

掛起,讓我清理你的代碼,並重現問題 – Schien

+0

嗨,你可以編輯你的答案,以反映我所建議的改變嗎?我測試了IE6和7和代碼的作品。 ,並在交換機中寫入「cmd」。全部小寫。謝謝。 – Schien

0

值得注意的是,onChange在IE 7/8上播放不好。 jQuery是一個很好的解決方法。

jQuery的方法:

$("#trig_method").change(trigonchange()); 

參考: http://api.jquery.com/change/


編輯:

如果你要去的jQuery,確保jQuery是添加到您的項目(這裏的快和容易的CDN方法 - 插入頭標籤):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

然後在下面,你的目標你的HTML元素的某個位置添加

$("#trig_method").change(trigonchange()); 

。如果你想要的元素上面,你需要換用$(的document.ready())這樣的功能:

$(document).ready(function) { 
    $("#trig_method").change(trigonchange()); 
} 

但你真正的問題是由Barmar首先解決,所以我d將他標記爲正確的答案。

多次嘗試後,更改此行:

<select name="trig_method" id="trig_method" onchange="trigonchange();... 

<select name="trig_method" id="trig_method" onchange="trigonchange();this.selectedIndex=this.defaultIndex;" onfocus="this.defaultIndex=this.selectedIndex;"> 

Barmar建議的作品。

您不能在同一個標​​記中調用兩個onChanges。不知道你是否打算將這兩者都作爲onChange的結果發生,但這正是導致問題的原因。

至於IE9 +,你的修改後的代碼應該可以工作。如果您要支持IE7/8,請按照我所述使用jQuery來調用更改,而不是在標籤中使用onChange。

+0

like this ?? $(「#trig_method」)。change(trigonchange(){select_id = $ (「#trig_method」).value; if(select_id ==「script」){$(「#one」).css(「visibilty」,「visible」); $(「#a」).css(「visibilty 「),」visible「);});這個效果並不好:( – user3217945

+0

不太好,請看我的編輯,Barmar有正確的答案,因爲他的修補程序在IE10中第一次嘗試。 – QNeville

+0

編輯了代碼併發布。有一個luk – user3217945

相關問題