2014-07-22 218 views
1

如果表單提交成功,我如何更改按鈕的行爲?更改提交按鈕關閉按鈕

<form method="post" enctype="multipart/form-data" style="margin: 0;" id="frmGenerate"> 
    <div class="clearfix"> 
     <div class="input-group"> 
      <input type="text" placeholder="Customer Name:" name="CustomerName"> 
      <input type="text" placeholder="Generated Url:" name="CustomerUrl" readonly="readonly" /> 
     </div> 
    </div> 
    <div class="clearfix"> 
     <div class="input-group"> 
      <button type="submit" class="btn">Generate</button> 
     </div> 
    </div> 
</form> 

這裏是我的JS代碼:

$('#frmGenerate').submit(function(e) { 
     var clientName = $(this).find('input[name="CustomerName"]').val(); 
     $.ajax(
      { 
       url: '@Url.Action("GenerateToken","Admin")', 
       type: 'GET', 
       data: { customerName: clientName }, 
       success: function(response) { 
        if (response.result) { 
         $('#frmGenerate').find('input[name="CustomerUrl"]').val(response.message).select(); 
         $('#frmGenerate').find('button.btn').text('Close'); 
        } else { 
         alert(response.message); 
        } 
       } 
      }); 
     e.preventDefault(); 
    }); 

這是模態窗口,我打開生成的令牌。當它生成成功,然後我設置生成的模式輸入令牌和更改文本的按鈕關閉,但我不知道如何更改按鈕的行爲。

+0

你是什麼意思按鈕的行爲?你能告訴我細節嗎?你想要按鈕做什麼? – Mahder

+0

@Mahder,我想使用模式窗口firstle上的按鈕提交表單,然後當提交成功時,只需關閉模式窗口onclick按相同的按鈕。這裏的解決方法就像使用2個按鈕(一個用於提交,另一個用於關閉,只需切換它們)。但如果有任何使用1按鈕2選項的話,如果你明白我的意思。謝謝 – user3770925

+0

我會建議隱藏這個按鈕使用$(「。btn [type ='submit']」)。hide()並創建另一個關閉按鈕。 –

回答

1

更好的方法是不改變現有的按鈕,但隱藏顯示另一個。

HTML:

<div class="clearfix"> 
    <div class="input-group"> 
     <button type="submit" class="btn">Generate</button> 
     <button type="button" class="btn btn-close hide">Close</button> 
    </div> 
</div> 

JS:

$('#frmGenerate').find('.btn').hide(); 
$('#frmGenerate').find('.btn-close').show(); 
+0

謝謝,我知道這個解決方案,如果你認爲這樣更好,那麼我會用它) – user3770925

+0

這更好,因爲你有更多的靈活性。你可以很容易地有不同的風格。 Javascript代碼不與表示混合。 – dfsq

0

取決於您正在使用的按鈕類型。鈕必須使用,如:<button></button>不喜歡<button/>

然後用:

$(".btn").html('Close'); 
+0

我使用'' – user3770925

0

你可以改變按鈕的屬性

$('#frmGenerate').find('button.btn').attr('type', 'button'); 

然後:

$('#frmGenerate').find('button.btn').on('click', function(){ /*close function */}); 
0

我發現在提交表單後,您已將您的按鈕的文本更改爲「關閉」。所以剩下的部分是處理按鈕上的點擊事件的jQuery。

....

 $('.btn').click(function(){ 
     var buttonText = $(this).val(); 
     if(buttonText === 'Close'){ 
     //code when close button is clicked 
     }else if(buttonText === 'Generate'){ 
      //code when Generate button is clicked... 
     } 
     });//end button.click function 

而且我會用輸入類型= '按鈕' 或按鈕比輸入類型= '提交'。爲什麼不使用ajax提交表單?好多了。

希望這有助於...

+0

是的,這也是解決方案,但不是很好.. – user3770925