2011-07-14 62 views
1

我已經添加了onfocus和onclick來選擇和編寫如下所示的Java腳本函數。使用速度即.vm文件來調用JavaScript函數。從速度傳遞參數到javascript

<script type="text/javascript"> 
       function fixA(val){ 
        alert(val);        
        // document.getElementById(val).style.zIndex="100"; 
        val.style.zIndex=300; 
       } 
       function fixB(val){ 
        alert(val);        
        // document.getElementById(val).style.zIndex="300"; 
         val.style.zIndex=300; 
       } 

      </script> 


#elseif ($el.type.code == "listbox") 
#if($errorFields.contains($name)) 
    <div class="label selectbox big error"> 
#else 
    <div class="label selectbox big" > 
#end 
    #if ($el.label) 
     #if ($el.mandatory) 
      <label class="label_content" for="$name">$el.label *</label> 
     #else 
      <label class="label_content" for="$name">$el.label</label> 
     #end 
    #end 
    <select class="select_styled" id="$name" name="$name" onfocus="fixA($name)" onclick="fixB($name)" > 
     #foreach($val in $el.values) 
      #set ($sel = "") 
      #if ($allInputFields.get($name) == $val) 
       #set ($sel = ' selected="selected"') 
      #end 
      <option$sel onclick="resetIndex()">$val</option> 
     #end 
    </select> 
    <div class="clr"> 
    </div> 
</div> 

1)我使用IE7,它不工作,它在FF中工作正常。

2)alert(val)給出的值爲[object HTMLSelectElement],但alert(document.getElementById(val));給出了空值。我該如何解決它?

回答

2

主要錯誤,您需要引用名字的FIXa( '$名稱')

,才能通過這個:聚焦狀態= 「FIXa的(這個)」

function fixA(sel){ 
    sel.style.zIndex=100; // int, not a string 
} 

看來你是吠叫錯誤的樹。

插件重寫DOM爲一組的div

而且的jQuery的選擇框插件,您使用應該只是你想達到什麼做的,失敗的一些IE7具體原因$container.css("z-index", "10000");

+0

但是,這是一個完全不同的問題 - 在IE8工作的方式 – mplungjan

1

變量s不是一個ID,它已經是一個元素的引用。

1

沒有引號,它傳遞一個名爲$ name的對象,而不是字符串「$ name」。那將是空的或未定義的。 onclick="fixA('$name')"

1

更改它像這樣:用單引號您的onclick

報價「$名」

<select class="select_styled" id="$name" name="$name" 
     onfocus="fixA('$name')" onclick="fixB('$name')">