2012-03-15 19 views
0

我有兩個下拉菜單和一個文本框。 我想顯示兩個下拉列表中所選值的乘法。在「onSelectedIndexChanged」上調用jquery函數

所以我想在「OnSelectedIndexChanged」甚至是下拉菜單上調用jquery函數。 Hoever我在Visual Studio中構建時遇到錯誤。

我的代碼是:

<asp:DropDownList ID="ddlProbability" runat="server" Width="125px" OnSelectedIndexChanged="javascript:calculateRiskFactor();"> 

錯誤是:Invalid expression term ':' and Invalid expression term ')' and some more

有什麼不對的語法或這是錯誤的方式來調用一個函數?

整個頁面的代碼是這樣的:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Submit_Risks.aspx.cs" Inherits="Risks_Submit_Risks" MasterPageFile="~/MasterPages/SAPMaster.master" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"></asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">  
<script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
<script type="text/javascript" src="../Scripts/Validation.js"> </script> 
<div class="container"> 
    <div class="contain"> 
     <div class="title"> 
      Risks</div> 
     <div class="data"> 
      <asp:Label runat="server" ID="lblMsg"></asp:Label> 
      <table class="style1" align="center"> 

       <tr> 
        <td class="style2"> 
         Probability (P) 
        </td> 
        <td class="style3"> 
         <asp:DropDownList ID="ddlProbability" runat="server" Width="125px"> 
         </asp:DropDownList> 
         <asp:RequiredFieldValidator ID="rfvProbability" runat="server" ControlToValidate="ddlProbability" 
          InitialValue="0" ValidationGroup="vgSubmit" ErrorMessage="Probability" ForeColor="Red" 
          Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator> 
        </td> 
       </tr> 
       <tr> 
        <td class="style2"> 
         Impact (S) 
        </td> 
        <td class="style3"> 
         <asp:DropDownList ID="ddlImpact" runat="server" Width="125px"> 
         </asp:DropDownList> 
         <asp:RequiredFieldValidator ID="rfvImpact" runat="server" ControlToValidate="ddlImpact" 
          InitialValue="0" ValidationGroup="vgSubmit" ErrorMessage="Impact" ForeColor="Red" 
          Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator> 
        </td> 
       </tr> 
    </div> 
    </div> 
</div> 

+1

嘗試像這樣OnSelectedIndexChanged =「calculateRiskFactor();」 – 2012-03-15 06:28:01

+0

試着看看[這個](http://www.codeproject.com/Articles/656/Using-JavaScript-to-handle-drop-down-list-selectio) – 2012-03-15 06:27:24

回答

0

嘗試這種方式。

<asp:DropDownList ID="ddlProbability" runat="server" Width="125px" OnSelectedIndexChanged="calculateRiskFactor()"> 
+0

由於函數是在不同的js文件中,我再次出錯。 – user1181942 2012-03-15 06:34:43

+0

您是否在此文件中添加鏈接?如果可以,請告訴我整個頁面。 – 2012-03-15 06:37:18

+0

我ahve添加文件鏈接...你可以檢查編輯的問題 – user1181942 2012-03-15 07:34:21

0

你必須註冊客戶端DroDownlist..you的'onchange'事件可以使用

DropDownList1.Attributes.Add("onChange", "return OnSelectedIndexChange();") 

OnSelectedIndexChange()onchange註冊事件是一個JavaScript函數,這將是在客戶端的時候打電話的時候,下拉框入圍指數是變化。

2

據我記得,從ASP.NET WebForms,OnSelectedIndexChanged只返回到一個.NET服務器端函數,ASP.NET調用與回發(如果我錯了,糾正我)。

要將客戶端代碼綁定到控件(就像使用jQuery一樣),爲什麼不使用jQuery來爲您做?

$('select[id$="ddlProbability"]').change(calculateRiskFactor); 
+0

我想這個...但是這個事件從來沒有觸發..我也試過調試.. :( – user1181942 2012-03-15 09:01:22

+0

好吧對不起......現在事件被觸發但在頁面加載時,而不是在更改下拉列表的值之後... – user1181942 2012-03-15 09:11:20

+0

地獄是啊,你應該嘗試調試。hahaha。:D在任何情況下,你確定你使用正確的jQuery選擇器來綁定處理程序? – 2012-03-15 09:11:48