2011-01-04 2 views
0

jQuery를/CSS : 당신은 '등록'을 처음 클릭하면 http://jsfiddle.net/Chandu/AdQfB/11/클릭 할 때 버튼이 두 개의 다른 기능을 제공하도록하려면 어떻게해야합니까? - 현재 구현을 볼 수 있습니다

, 당신은 더 많은 필드를 볼 수 있습니다.

내가 원하는 것은 그들이 등록을 클릭 한 후 '제출'을 클릭하면 정보를 서버로 보냅니다.

'로그인'을 누르고 사용자 이름 및 암호 입력란을 작성한 경우에도 마찬가지입니다.

어떻게해야합니까?

나는 백엔드에서 레일즈를 사용하고 있습니다.

감사합니다. 그것은 type="submit" 버튼 이래로

답변

2

당신이 단순히 버튼에 포함 된 내용을 텍스트 확인 할 수 할 수 있습니다. 제출 조치를 해당 클래스에 연결하십시오. 추가 양식 요소를 제거 할 때 해당 클래스를 제거하십시오. 로그인을 위해 "if ($ ("# visible_pw "). is (": visible "))"를 else {로 확장하고 거기에 로그인을 구현하십시오.

2

기본 동작을 사용할 수 있습니다 그냥 같이, 당신의 click 처리기를 제거 :

$("input#register").click(function(e) { 
    $("input#f_name").slideDown().prepend("<br /><br />").css({"display": "block"}); 
    $("input#l_name").slideDown().css({"display": "block"}); 
    $("input#confirm_pw").slideDown().css({"display": "block"}) 
    $("input#register").val('Submit'); 
    $("input#login").css({ 'color' : '#567603' }); 
    e.preventDefault(); 
    $(this).unbind("click"); 
});  

You can test it out here합니다.

$("input#register").click(function(e) { 
    if (this.value == 'Register') 
     // do one thing 
    else if (this.value == 'Submit') 
     // do another thing 
}); 
+0

실수가 아니라면'.once ('click', ...'을 사용하고'unbind' 라인을 제거함으로써 조금 짧아 질 수 있습니다 –

+0

@Michael - 당신은 할 수 있습니다, 기본적으로 같은 행동입니다 그래서 어느 쪽이든 - 당신이 저에게서 +1을 얻을 것이라는 것을 게시한다면 :) –

+0

나는이 솔루션의 우아함을 좋아하지만 UI를 말 그대로 한 번의 클릭으로 제한합니다. 사용자가 두 번 이상 클릭했지만 올바른 정보를 입력하지 않으면 어떻게됩니까? (예 : JS 유효성 검사를 추가 할 때 이론적으로 버튼을 10 억 회 클릭 할 수 있어야합니다. 적절한 데이터를 입력하지 않으면 ' t 제출). – marcamillion

0

는 양식을 확장하고 동시에 등록 버튼에 클래스를 추가

관련 문제