2017-08-14 50 views
0

我想轉換一個@Html.Textbox圖像按鈕到submit按鈕與onclick調用一個Javascript函數,但我似乎無法弄清楚驗證部分。我相信它確實需要成爲一個提交按鈕。轉換一個@ Html.Textbox按鈕來提交按鈕

我基本上試圖擺脫圖像,但保持功能。

以下是今天的工作。

@Html.TextBox("Next", null, new {type = "image", src = @Url.Content("../App_Themes/icons/button_next.png"), @class = "imgbottom", onclick = "javascript: ValidateSelection ($(\"[name$='selectedItems']:checked\"))"}) 


function ValidateSelection(item) { 

if (item == null || item.length == 0) { 

    var validationSummary = $('.validation-summary-errors ul'); 
    if (validationSummary.length > 0 && $('.validation-summary-errors ul li').length == 0) { 
     validationSummary.append('<li>' + "Please select at least one item" + '</li>'); 
    } 
    var errors = $("[name='ErrorMessage']"); 
    if (errors.length > 0) { 
     errors.hide(); 
    } 
    var buttonGenerateReport = $("#GenerateReport"); 
    if (buttonGenerateReport.length > 0) { 
     buttonGenerateReport.hide(); 
    } 
    event.preventDefault(); 
} 

}

+0

這是工作,除了驗證的一部分? –

+0

是的。這裏是我現在的位置 SimpleSimon

回答

0
<button type="submit" class="imgbottom" onclick="ValidateSelection('selectedItems');"> 
    <img src="@Url.Content("~/App_Themes/icons/button_next.png")" alt="Next" /><br /> 
    Next 
</button> 

URL內容字符串的一部分"~/"代表你的項目的根,所以調整後來到適合你的正確的文件地址。您可以使用FontAwesome並完全替換您的圖片。由於CSS的原因,它的大小可擴展,並且語法更簡單。

<button type="submit" class="imgbottom" onclick="ValidateSelection('selectedItems');"> 
    <i class="fa fa-angle-double-right" aria-hidden="true"></i> Next 
</button> 

然後在您的jQuery函數:

function ValidateSelection(elementName){ 
    var selectedItems = $("[name='" + elementName + "']:checked"); 

    if (selectedItems === null || selectedItems.length === 0) { 
     var validationSummary = $('.validation-summary-errors ul'); 

     if (validationSummary.length > 0 && $('.validation-summary-errors ul li').length == 0) { 
      validationSummary.append('<li>' + "Please select at least one item" + '</li>'); 
     } 
     var errors = $("[name='ErrorMessage']"); 
     if (errors.length > 0) { 
      errors.hide(); 
     } 
     var buttonGenerateReport = $("#GenerateReport"); 
     if (buttonGenerateReport.length > 0) { 
      buttonGenerateReport.hide(); 
     } 
     event.preventDefault(); 
    } 
} 
+0

這些更改仍然存在onclick =「ValidateSelection($ [name = selectedItems ]:checked);這裏是我目前在>那麼,我將如何轉換ValidateSelection($ [name = selectedItems] :checked);與我有什麼關係? – SimpleSimon

+0

我忘記了簡單的引號,我的錯誤,現在我添加它們 – Tiramonium

+0

爲了讓您的生活更輕鬆,只需將「selectedItems」作爲參數發送給ValidateSelection而不是整個選擇器。然後在你的函數中,使用接收到的值寫下選擇器 – Tiramonium