2012-08-23 139 views
2

夥計們我是JavaScript的新手,所以不知道錯誤在哪裏。基本上我在我的cshtml中有兩個提交按鈕。一個用id = email和其他id = sms。我已經設置了值=「」。我在表單中使用這些按鈕。輸入(提交)按鈕的設置值

我想要做的是;通過點擊這些按鈕,我想向它們傳遞一個值,以便我可以在模型和控制器中使用該值,例如在switch語句中。嘗試了各種方式,但仍然傳遞空值。請指教!

function GetVal() { 
    var input = document.getElementsByTagName('input'); 
    for (i = 0; i < input.length; i++) { 
     if (input[i].type == 'submit') { 
      if (input[i].id == 'email') { 
       //input[i].value = 'submitEmail'; 
       //input[i].setAttribute("value", "subEmail"); 
       document.getElementById("email").setAttribute("subEmail", "value"); 
       break; 
      } 
     } 
    } 
} 

<input id="email" type="submit" class="@(Model.UnsubscribedEmail == null ? "unsubscribe" : "subscribe")" onclick="GetVal();" /> 

型號

public static void susbscription(MyModel model, string submitButton) 
    { 
    switch (submitButton) 
     { 
      case "subEmail": 
      //Code here 
      break; 
     } 
    } 

控制器

[HttpPost] 
public ActionResult MarketingPreferences(MyModel model, string submitButton) 
    { 
     MarketingPreferencesModel.susbscription(model, submitButton); 

     return View(model); 
    } 
+0

'輸入[I] .value的=「submitEmail''應該工作,你確定它找到合適的元素? – jrummell

+0

是的。我用alert來顯示元素,它是正確的 –

回答

1

試試這個:

<input id="email" type="submit" name="submitButton" onclick="GetVal(this);" class="@(Model.UnsubscribedEmail == null ? "unsubscribe" : "subscribe")" /> 

在JavaScript:

function GetVal(element) { 
    element.value = "subEmail"; 
}  

在行動:

public ActionResult MarketingPreferences(MyModel model, string submitButton) 
{ 
    MarketingPreferencesModel.susbscription(model, submitButton); 

    return View(model); 
} 
+0

GetVal(this)解決了這個問題,謝謝 –

+0

歡迎:) – karaxuna