2014-09-23 3 views
-1

Передний конец этого кода уже разработан и использует jquery в нескольких местах для перехвата щелчка пользователя. Здесь у меня есть переключатель, который при нажатии на него вызывает событие ниже. Мне нужно сделать этот огонь даже для элемента ввода html из моего кода, находящегося на странице загрузки страницы, чтобы предварительно заполнить радиокнопки. Как я могу это сделать?Вызов события jquery click от asp-кода позади?

Jquery событие пожара:

//checkboxes 
    $('.questions-form a.toggle').bind('click', function (event) { 
      //jquery magic 
    } 

HTML элементы, которые нужно выбрать, или нажмите:

      <div id="form-error" style="display: none"></div> 

          <div class="questions-form" id="shipping-questions-form"> 

           <div class="question question-textarea has-subquestions"> 
            <div class="question-intro clearfix"> 
             <h2>Did You Receive The Product As Ordered?</h2> 

             <div class="no-yes answer-acceptable"> 
              <div class="no"><label class="label-1" for="shipping_question_ID_product_received_as_ordered_not_acceptable">Not Acceptable</label></div> 
              <a href="#" class="toggle"></a> 
              <div class="yes"><label class="label-2" for="shipping_question_ID_product_received_as_ordered_acceptable">Acceptable</label></div> 
              <label class="universal-label"></label> 

              <input type="radio" id="shipping_question_ID_product_received_as_ordered_not_acceptable" name="shipping-question-ID-product-received-as-ordered" value="Not Acceptable" runat="server"> 
              <input type="radio" id="shipping_question_ID_product_received_as_ordered_acceptable" name="shipping-question-ID-product-received-as-ordered" value="Acceptable" checked="true" runat="server"> 

             </div> 
            </div> 
+2

Хотя это вполне возможно, это, вероятно, плохой дизайн, если вам нужно сделать это. Возможно, вам следует отделить то, что требует взаимодействия на стороне сервера, а что нет? – mason

ответ

1

Вы можете использовать

ScriptManager.RegisterStartupScript Method (Page, Type, String, String, Boolean); 

где параметры

**page** 
Type: System.Web.UI.Page 
The page object that is registering the client script block. 
**type** 
Type: System.Type 
The type of the client script block. This parameter is usually specified by using the typeof operator (C#) or the GetType operator (Visual Basic) to retrieve the type of the control that is registering the script. 
**key** 
Type: System.String 
A unique identifier for the script block. 
**script** 
Type: System.String 
The script to register. 
**addScriptTags** 
Type: System.Boolean 
true to enclose the script block with <script> and </script> tags; otherwise, false. 

Пример использования см: how to call jquery function call in asp.net c#?

+0

В приведенном выше коде у меня есть несколько входов, которые имеют одно и то же событие click. Как я могу назвать эту функцию для конкретного радиовхода, скажем, «отправка-вопрос-идентификатор-продукт-полученный-как-заказанный»? – KateMak

+0

места его внутри защищен недействительный RadioButton1_CheckedChanged (объект отправитель, EventArgs е) { } – Tushar

+0

Я немного запутался ... Мне нужно отправить событие щелчка «груз-вопрос-ID продукт радиоприем, как упорядоченные» , могу ли я сделать это, используя метод, описанный в вашем ответе? – KateMak

0

Следующий код выполняется необходимую функциональность. Я вызвал эту функцию, нажав на привязку, прикрепленную к объекту.

<div class="no"><label class="label-1" for="shipping_question_ID_product_received_as_ordered_not_acceptable">Not Acceptable</label></div> 
<a href="#" class="toggle" runat="server" id="shipping_question_ID_product_received_as_ordered_link"></a> 

Затем в коде позади:

var autoRunScript = string.Format("<script>$(function() {{ $('#{0}').click(); }});</script>", shipping_question_ID_product_received_as_ordered_link.ClientID); 
Page.RegisterClientScriptBlock("keyClientBlock", autoRunScript); 
Смежные вопросы