2011-04-18 5 views
0

버튼을 클릭 할 때만 양식을 제출할 수 있어야합니다. 또한 폼이 제출되면 버튼을 비활성화해야합니다.버튼 만 사용하여 양식 제출 + jQuery 제출시 사용 안함

나는 버튼에 ID를 추가하고 클릭 기능을 추가 할 생각을하고있었습니다. 나는 올바른 길을 가고 있는가? 실제로 클릭 한 후에 버튼을 사용 중지하는 방법을 아직 모릅니다.

$('#myButton').click(function() { 

}); 

답변

1
$('#myButton').click(function() { 
    $(this).attr('disabled','disabled') 
}); 
+2

필자는 오래 전에 건강한 논쟁을 벌였으며, 문자열 값에 대해'$ (this) .attr ('disabled', false)'를 평가하게되었습니다. 문자열을 아무 곳에 나 설정할 수 있으며 동일하게 작동하므로 의미가 없습니다. 또한, 다시 가능하게하는 것은 속성을 완전히 제거하는 것이 아니라'.attr ('disabled', false)'처럼 쉽습니다. 생각을위한 음식. –

+0

그래, 선택 대 체크와 마찬가지로 우리가 살 필요가있는 불일치 중 하나입니다. –

+0

정말 일관성이 없습니다. '.attr ('disabled', false)'는 DOM 조작을 할 때보다 일관성이 있습니다. 그리고 비활성화 된 DOM 속성에 대한 W3C 표준은 string이 아닌 Boolean 유형입니다. –

2

는 올바른 방향으로 가고있는 것입니다. 클릭 후 버튼을 비활성화하려면 disabled 속성을 설정하기 만하면됩니다. 형태도 형태로 내부 요소에 포커스가있을 때 Enter 키를 눌러 제출하실 수 있습니다 염두에

$('#myButton').click(function() { 
    // get a reference to the element on which the handler is bound 
    // wrap it in a jQuery object so we can call jQuery methods on it. 
    $(this) 
    // set the disabled attribute. You can use true or the string 'disabled' 
    .attr('disabled', true); 
}); 

곰처럼 뭔가.

+1

간단히 말해서 : $ (this) .attr ('disabled', true) .closest ('form'). submit(); –

+0

@ 아담 - 예프! 'attr'이 원래 객체를 반환했는지 기억할 수 없습니다. 업데이트 할 예정입니다. –

+0

폼에 .submit()을 호출 할 필요가 없다고 계속 말하고 싶습니다. 증명을 위해 바이올린이 필요할 수도 있지만, 전파를 중지하거나 false를 반환하지 않는 한 기본 동작 (폼을 제출해야 함)이 발생해야합니다. 함수에서 false를 반환하지 않으면 실제로이 경우 양식을 두 번 제출할 수 있습니다. –