2013-10-29 39 views
-2

我有文本框。懸停時,我可以編輯文本框內容。編輯後,我可以保存更改,但是此時文本框的值不會更改,只能在刷新後更改。 如何改變textBox的值?文本更改後在文本框中設置值

樣品:

<input type="radio" name="SelectedSavedSearches" id="Saved_search_<%:s.Value %>" value="<%:s.Value %>" /> 
           <label for="Saved_search_<%:s.Value %>">&nbsp;</label> 
           <input type="text" class="saved-search-name def-text-input" value="<%: s.Text %>"/> 
           <button class="saved-search-rename"><strong>Save</strong></button> 

JS:

$('.saved-search-rename', container).unbind('click').click(function() { 
     var context = $(this); 
     var name = context.closest('p').find('.saved-search-name').val(); 
     if (name != undefined && name.trim() != '') { 
      var id = context.closest('p').find('input[name="SelectedSavedSearches"]').val(); 
      $.ajax({ 
       url: '/Account/RenameSavedSearch', 
       type: 'POST', 
       dataType: 'JSON', 
       data: { ssId: id, newName: name }, 
       success: function (response) { 
        if (!response.result) { 
         btDialogs.Error(response.message); 
        } 
       } 
      }); 
      return false; 
     } else { 
      btDialogs.Error('New Name can\'t be empty'); 
     } 
     return false; 
    }); 

操作:

[HttpPost] 
    [ProfileVerification] 
    public JsonResult RenameSavedSearch(int ssId, string newName) 
    { 
     if (LoggedUser == null) 
      return Json(new {result = false, message = "Not Authenficated"}); 

     var search = _listingManagementService.GetSavedSearch(ssId); 
     search.Name = newName; 
     var confirmation = _listingManagementService.SaveSearch(search); 

     return 
      Json(
       new 
        { 
         result = confirmation.WasSuccessful, 
         message = confirmation.WasSuccessful ? "Success" : confirmation.Message 
        }); 
    } 
+0

你想改變懸停的文本框的值? – James

+0

@詹姆斯我想在點擊按鈕保存後更改文本框的值 – user2554476

+0

您使用的是什麼樣的文本框?它和ASP:文本框或標準的HTML文本框?你是否在點擊按鈕上造成回傳?查看TextBox.OnTextChanged方法,該方法可能正是您所追求的。 –

回答

0

Jquery的/ JavaScript是溶液

UPDATE: 

$('.saved-search-rename', container).unbind('click').click(function() { 
    var context = $(this); 
    var nameInput=context.closest('p').find('.saved-search-name'); 
    var name = nameInput.val(); 
    if (name != undefined && name.trim() != '') { 
     var id = context.closest('p').find('input[name="SelectedSavedSearches"]').val(); 
     $.ajax({ 
      url: '/Account/RenameSavedSearch', 
      type: 'POST', 
      dataType: 'JSON', 
      data: { ssId: id, newName: name }, 
      success: function (response) { 
       if (!response.result) { 
        btDialogs.Error(response.message); 
       } 
       nameInput.val(!response.validatedNewName); 
      } 
     }); 
     return false; 
    } else { 
     btDialogs.Error('New Name can\'t be empty'); 
    } 
    return false; 
}); 

夏普:

我已經爲了回報驗證了newName

[HttpPost] 
[ProfileVerification] 
public JsonResult RenameSavedSearch(int ssId, string newName) 
{ 
    if (LoggedUser == null) 
     return Json(new {result = false, message = "Not Authenficated"}); 

    var search = _listingManagementService.GetSavedSearch(ssId); 
    search.Name = newName; 
    var confirmation = _listingManagementService.SaveSearch(search); 

    return 
     Json(
      new 
       { 
        result = confirmation.WasSuccessful, 
        message = confirmation.WasSuccessful ? "Success" : confirmation.Message, 
        validatedNewName=confirmation.WasSuccessful ?search.Name:"" 
       }); 
} 

JS更新你的行動?

+0

感謝回覆),但是當我只有一個輸入 - 我該怎麼做呢?我只是不明白文本框中的新文本在哪裏...(在html層) – user2554476

+0

那麼,你如何編輯該文本?你能粘貼你的代碼到你的問題嗎? – Bellash

+0

添加代碼。我改變了texbox中的文本 - 點擊保存按鈕 - 它發佈的很好,但是現在不要更改文本框的值。要更改值,我需要刷新頁面 – user2554476