2012-01-27 102 views
0

我想在HTML中的輸入=「圖像」上運行javascript menthod。我在我的HTML代碼如下所示:html onclick運行javascript功能不工作

onclick="manageHandlers('Unassign'); document.getElementsByName('manageHandlers')[0].submit(); " 

,在我的JavaScript的方法是這樣的:

function manageHandlers(parameter){ 
    alert("It's working: "+parameter); 
} 

有什麼我做錯了嗎?我昨天可以證明這一點,但今天它沒有做任何事情。

感謝您的關注!

完全的html代碼:

<%-- 
    Document : pathologist 
    Created on : 16 Nov 2011, 09:53:58 AM 
    Author  : dean.grobler 
--%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%> 
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %> 
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %> 

<%@ page import="javax.portlet.*"%> 
<%@ page import="co.za.lancet.medelogget.*" %> 
<%@ page import="java.util.ArrayList" %> 
<%@ page import="com.liferay.portal.kernel.servlet.*" %> 
<%@page import="com.liferay.portal.kernel.util.Validator" %> 

<portlet:defineObjects /> 

<% 
    String editable = request.getParameter("editable"); 
    String selectedValue = request.getParameter("selectedValue"); 
    int selectedIndex = 0; 
    if (selectedValue != null) { 
     selectedIndex = Integer.parseInt(selectedValue); 
    } 
    ArrayList<String> data = tableData.getTableData(selectedIndex, "consumers", "code"); 
    String AvailableJavaScript = tableData.consumersAvailableHandlers(data.get(0)); 
    String AssignedJavaScript = tableData.consumersAssignedHandlers(data.get(0)); //data.get(0) is the whereclause  

%> 

<!-- -------------------------Interface Starts here------------------------- --> 

<aui:layout> 
    <form name="consumerDetails" action="<portlet:actionURL ><portlet:param name="consumers" value="consumers"/></portlet:actionURL>" method="post"> 
     <input type="hidden" value="consumers" name="formType" /> 
     <input type="hidden" value="<%=selectedValue%>" name="selectedValue" /> 



    <input type="hidden" value="" id="button" name='button' /> 
    <aui:column columnWidth="50"> 
     <h3> 
      <%if (editable.equals("")) {%> 
      Edit Consumer 
      <%} else {%> 
      Consumer Details 
      <%}%> 
      <%%> 
     </h3> 
     <div class="horizontalRules"><hr class></div> 
     <div id="successAndErrorMessages"></div> 

     <table width="100%"> 
      <tr height="35px"><td width="25%">Code:</td><td><input type="text" value="<%=data.get(0)%>" name="code" class="textBoxes" <%=editable%>></td></tr> 
      <tr height="35px"><td width="25%">Description:</td><td><input type="text" value="<%=data.get(1)%>" name="description" class="textBoxes" <%=editable%>></td></tr>   
     </table> 
    </aui:column>  

    </form> 
    </aui:layout> 

    <!-- --------------------Handler rules section---------------------- -->   
    <%if (editable.equals("")) {%> 

    <aui:layout> 
     <aui:column columnWidth="100"> 
      <h3>Manage Handler Rules</h3> 
      <div class="horizontalRules"><hr class></div>       
      </aui:column> 
     </aui:layout> 

    <aui:layout> 

     <form name="manageHandlers" id="formType" action="<portlet:actionURL ><portlet:param name="manageHandlers" value="manageHandlers"/></portlet:actionURL>" method="post"> 

      <!-- index selected in handlers tables --> 
      <input type="hidden" name="selectedHandler" id="selectedHandler" /> 
      <input type="hidden" value="" id="handlerButton" name='handlerButton' /> 
      <input type="hidden" value="" id="button" name='button' /> 
      <input type="hidden" value="" id="tableType" name='tableType' /> 
      <input type="hidden" value="manageHandlers" name="formType" /> 

      <table width="100%"> 
       <tr><td width="35%"><table width="100%"> 
          <tr> 
           <td><h4 style="margin-bottom: 10px;">Available Rules</h4></td> 
          </tr> 
          <tr> 
           <td><div class="availableTable" id='available_div'></div></td> 
          </tr> 
         </table></td> 

        <td width="15%"><div class="manageHandlersButtons1"> 
          <table width="100%"> 
           <tr> 
            <td><h4>Fatal Error:</h4></td> 
           </tr> 
           <tr> 
            <td><input type="checkbox" id="fatal" name="fatal" class="manageHandlersCheckbox" value="1" /></td>           
           </tr> 
           <tr> 
            <td><input type="image" id="button" value="Assign" src="<%=renderRequest.getContextPath()%>/Images/rightarrow.png" alt="Assign Selected Rule" class="imgAssignUnassign" onclick="if(manageHandlers('Assign')){ document.getElementsByName('manageHandlers')[0].submit(); }" /></td> 
           </tr> 
           <tr> 
            <td><input type="image" id="button" value="Unassign" src="<%=renderRequest.getContextPath()%>/Images/leftarrow.png" alt="Unassign Selected Rule" class="imgAssignUnassign" onclick="manageHandlers('Unassign'); document.getElementsByName('manageHandlers')[0].submit(); " /></td> 
           </tr> 
          </table> 
         </div></td> 

        <td width="35%"><table width="100%"> 
          <tr> 
           <td><h4 style="margin-bottom: 10px;">Assigned Rules</h4></td> 
          </tr> 
          <tr> 
           <td><div class="assignedTable" id='assigned_div'></div></td> 
          </tr> 
         </table></td> 

        <td width="15%"><div class="manageHandlersButtons2"> 
          <table width="100%"> 
           <tr> 
            <td><input type="button" id="button" name="MoveUp" value="MoveUp" style="width: 85px;" class="manageHandlersMvUp" onclick="if(manageHandlers('Move up')){ document.getElementsByName('manageHandlers')[0].submit(); }" /></td> 
           </tr> 
           <tr> 
            <td><input type="button" id="button" name="MoveDown" value="MoveDown" style="width: 85px;" class="manageHandlersMvDwn" onclick="if(manageHandlers('Move down')){ document.getElementsByName('manageHandlers')[0].submit(); }" /></td> 
           </tr> 
          </table></div> 

        </td></tr> 
      </table> 
     </form>         

    </aui:layout>   

    <div class="horizontalRules2"><hr class></div>   

    <%}%> 

    <table width="100%"> 
     <tr> 
      <td width="25%"><input type="button" value="Back" style="width: 80px;" class="leftButtons" onClick="document.getElementById('button').value='Back'; document.getElementsByName('consumerDetails')[0].submit()" /></td> 

      <!-- if not editable, don't display this button --> 
      <% if (editable.equals("")) {%>     
      <td><input type="button" value="Save" style="width: 80px;" class="rightButtons" onClick="if (addEntryValidator('Save','consumers','edit')) {document.getElementsByName('consumerDetails')[0].submit()}" /></td>      
       <% }%> 
     </tr> 
    </table> 

    <!-- JavaScript Tables -->  
    <script type="text/javascript"><%= AssignedJavaScript%></script> 
    <script type="text/javascript"><%= AvailableJavaScript%></script> 
+0

你能告訴我你的HTML代碼? – Oyeme 2012-01-27 09:34:48

+0

您是否檢查過您的javacript文件是否包含在頁面的頂部。你的瀏覽器中是否有任何javascript錯誤? – CSharpened 2012-01-27 09:36:31

+0

我正在Liferay門戶中使用jsp,適用於我所做的所有其他頁面。我也做了完全一樣的,但對於這個,它只是沒有運行的功能出於某種原因。在瀏覽器中沒有js錯誤沒有 – Tiwaz89 2012-01-27 09:38:26

回答

3

這是錯誤的:

onclick="manageHandlers('Unassign'); 
document.getElementsByName('manageHandlers')[0].submit();" 

我從來沒有見過類似的東西before..or如果它確實有可能和我做錯過什麼,然後我敢打賭,這很少做,因爲不把你的js代碼與內容層(HTML)分開是一種不好的做法。

無論如何,onclick是一個事件處理程序。您通常會分配一個在點擊發生時執行的函數。

如果我是你,我不會做內聯的JavaScript。但是,如果你真的想保持它內聯,那麼你可以試試這個:

function manageHandlers(parameter){ 
    alert('blabla' + parameter); 
    document.getElementsByName('manageHandlers')[0].submit(); 
} 

和的onclick,你可以做到這onclick="manageHandlers('Unassign');"希望幫助..