2011-11-21 84 views
1

我正在使用MVC3HTML的視圖。javascript .click在MVC3中加載第二個視圖時未執行

這是我的觀點:

@model mobilesurveys.mt.Models.Question 
@{ ViewBag.Title = "Question"; } 
<div data-role="header" data-theme="b"> 
    <h1>@Model.SurveyName</h1> 
</div> 

@if (@Model.QuestionType == 7) 
{ 
    <div data-role="fieldcontain"> 
    @using (Html.BeginForm("SaveDropDown", "GetQuestion", Model)) 
    { 
     @Html.AntiForgeryToken() 
     <fieldset> 
      <label class="select">@Model.QuestionText</label><br /> 
      <select name="selectedObjects" id="selectchoice1" data-native-menu="false"> 
       <option value="-1">--Select--</option> 
       @foreach (var item in Model.Options) 
       { 
        if (@item.IsAnswer == true) 
        { 
         <option selected="selected" value="@item.OptionNumber">@item.OptionText</option> 
        } 
        else 
        { 
         <option value="@item.OptionNumber">@item.OptionText</option> 
        } 
       } 
      </select> 
     </fieldset> 

     <p><input type="submit" id="selectsubmit" value="Next" /></p> 
    } 
    </div> 
} 

@if (@Model.QuestionType == 1) 
{ 
    <div data-role="fieldcontain"> 
    @using (Html.BeginForm("SaveRadio", "GetQuestion", Model)) 
    { 
     @Html.AntiForgeryToken() 
     <fieldset data-role="controlgroup" id="radio_fieldset"> 
      <label id="l1" for="select-choice-1" class="select">@Model.QuestionText</label><br /> 
      @foreach (var item in Model.Options) 
      { 
       if (@item.IsAnswer == true) 
       { 
        <input type="radio" checked="checked" name="selectedObjects" id="@item.OptionText" value="@item.OptionNumber" onselect="next(@item.OptionNumber);" /> 
       } 
       else 
       { 
        <input type="radio" name="selectedObjects" id="@item.OptionText" value="@item.OptionNumber" onselect="next(@item.OptionNumber);" /> 
       } 
       <label for="@item.OptionText">@item.OptionText</label> 
      } 
      <br /> 
     </fieldset> 
     <p><input type="submit" id="radio_submit" onclick="validate(this);" value="Next" /></p> 
    } 
    </div> 
} 

這裏是我的javascript:

<script type="text/javascript"> 
    $(document).ready(function() { 
     // validation for select that can not leave empty. 

     $("#selectsubmit").click(function (e) { 
      var textContent = $("#selectchoice1").val(); 
      textContent = jQuery.trim(textContent); 
      if (textContent == "-1") { 
       alert("please select the value"); 
       $("#selectchoice1").focus(); 
       return false; 
      } 
     }); 

     $("#radiosubmit").click(function (e) { 
      alert('hi'); 
     }); 
    }); 
</script> 

我重定向到在我的控制器不同的ID相同的看法。

問題是當javaScript在第一次加載文檔時執行時。當我點擊radiosubmit按鈕時,警報不會觸發。

這怎麼能在MVC3中處理?

回答

2

您將您的事件綁定到必須已經在頁面上的特定對象。你這裏有兩種選擇:

  • 使用jQuery現場
  • 綁定到加載第二個視圖

嘗試google一下綁定之間的差異和生活(點擊後再次點擊就是綁定的快捷方式具體事件叫做點擊)

+0

yap那主要是它,事件在執行操作後不是自動運行的。 – Harry

相關問題