2011-08-17 2 views
0

나는버튼이 비활성화 된 후 해당 값이 컨트롤러에 게시되지 않았습니다.

if (form["submit"].ToString() == "Continue") 
{ 

} 
if (form["submit"].ToString() == "Continue") 
{ 

} 

<button name="submit" value="Continue">Continue</button> 
<button name="submit" value="Continue">Continue</button> 
<button name="submit" value="Continue">Continue</button> 
<button name="submit" value="Continue">Continue</button> 

제출하고 있습니다. 이 함수를 사용하여 :

$('form').submit(function() { 
       if ($(this).valid()) { 
        $(':submit', this).attr('disabled', 'disabled'); 
       } 
      }); 

그래서 지금 form["submit"] 컨트롤러에 게시 된 값을 가져 오지 않습니다.

어떤 생각을 어떻게 수정합니까?

두 번째 클릭을 방지하고 컨트롤러에 게시 된 form["submit"] 값을 가져올 수 있습니다.

답변

1

양식의 숨겨진 필드에서 submit 값을 제어 할 수 있습니까? 다른 논리가 필요한지는 말할 수 없지만 양식이 렌더링되면 숨겨진 필드의 값을 제출 버튼의 값으로 설정하고 아래의 첫 번째 스크립트를 사용하여 필요할 때 변경할 수 있습니다. name 속성이 있고 활성화 된 경우 (숨겨진 필드를 거의 사용하지 않는 경우) 양식을 제출하면 게시됩니다.

$(function() { 
    // this assumes your button has id="myButton" attribute 
    $(':hidden[name="submit"]').val($('#myButton').val()); 
}); 

그리고 당신의 형태 물론, 당신은 당신의 폼 변경의 상태가 버튼의 비활성 상태를 수정할 때마다 = 그런 다음

<input type="hidden" name="submit" value="Continue" /> 

"제출"이름의 숨겨진 필드를 필요 값을 반영하는 숨겨진 필드의 값입니다 (전혀 변경된 경우).

이와 같은 UI 기능에 유용한 프레임 워크가 있습니다. KnockoutJS가 떠오른다. 바인드 입력 요소를 "평가"하는 데 사용할 수 있습니다. 이 작은 예제에서는 아마 과도한 것이지만 UI가 확장되면 유용 할 수 있습니다. 관심있는 경우 마크 업, 스크립트 및 주석을 추가했습니다.

$(function() { 
    var viewModel = { 
     submitValue: ko.observable("Continue") 
    }; 

    ko.applyBindings(viewModel); 

    $('form').submit(function() { 
     if($(this).valid()) { 
      // the following line will change the both the hidden field's value 
      // as well as the button's value attribute 
      viewModel.submitValue("some other value"); 

      // I couldn't follow your selector here, but please note I changed 
      // the name of the submit button in the markup below. 
      $(':submit, this).attr('disabled', 'disabled'); 
     } 
    }); 
}); 

KnockoutJS는 요소를 설정하는 데 data-bind 속성을 사용해야합니다. 귀하의 경우 하나의 속성을 다음과 같이 여러 요소에 바인딩합니다.

<button name="submitButton" data-bind="value: submitValue"/>Continue</button> 
<!-- and bind the same value similarly in the hidden field--> 
<input type="hidden" name="submit" data-bind="value: submitValue"/> 
관련 문제