2013-10-24 86 views
0

我有按鈕不能調用函數(阿賈克斯)

<input type="button" value="Показать URL" onclick="showUrlQuestionnaire(' + options.rowId + ')"> 

這是我的onclick功能

function showUrlQuestionnaire(id) { 
$('#show_url_dialog').modal('show'); 
      $.ajax({ 
       url: 'Questionnaire/ShowUrlQuestionnaire', type: 'GET', dataType: 'json', data: { id: id }, contentType: 'application/json;charset=utf-8', 
       success: function (ajaxResult) { 
        $('#url-container').html(ajaxResult); 
       } 
      }); 
     } 

這是我的模態窗口

@section dialogs{ 

<div id="show_url_dialog" class="modal hide fade"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
     <h4>Link:</h4> 
    </div> 
    <div class="modal-body"> 
     <div id="url-container"></div> 
    </div> 
</div> 
} 

,這是我的控制器

[HttpGet] 
    public JsonResult ShowUrlQuestionnaire(int id) 
    { 
     var questionnaire = QuestionnaireRepository.GetById(id); 
     var questionnaireUrl = "/Questionnaire/CompleteQuestionnaire?GuidToken=" + questionnaire.QuestionnaireId.ToString(); 
     return Json(questionnaireUrl, "text/html", System.Text.Encoding.UTF8, 
        JsonRequestBehavior.AllowGet); 
    } 

但當我點擊按鈕沒有發生像我的ajax請求不起作用。
什麼是錯的,如何使它工作?

+0

您是否嘗試過使用瀏覽器調試器來弄清楚你的javascript是否會觸發?並返回什麼? – Nzall

+2

什麼是''+ options.rowId +'' –

+0

'options.rowId'是從MVC jQGrid獲得的int的整數,所以我的按鈕的頁面代碼看起來像' Heidel

回答

0

爲什麼你使用onclick?只是使用jquery click事件

<input type="button" value="Показать URL" class="btn" data-id="2"> 

其中,data-id爲您= options.rowId 然後

$(".btn").click(function() { 
var id =$(this).data("id"); 
$('#show_url_dialog').modal('show'); 
$.ajax({ 
     url: 'Questionnaire/ShowUrlQuestionnaire', type: 'GET', dataType: 'json', data: { id: id }, contentType: 'application/json;charset=utf-8', 
    success: function (ajaxResult) { 
     $('#url-container').html(ajaxResult); 
     } 
}); 
} 

從我的角度查看內置的JavaScript是邪惡的東西

+0

非常感謝您的幫助,我發現我的錯誤,我需要使用url'$ .ajax({url ='' ShowUrlQuestionnaire',''這裏控制器的名字是不必要的 – Heidel

+0

你很歡迎:) –

+1

是的,我同意你關於內嵌javascript函數的觀點,但不幸的是這是項目的標準。 – Heidel