2010-01-06 4 views
1

일부 자바 스크립트에 문제가있어 잘만되면 도움을 얻을 수 있습니다!Firefox에서 PHP jquery 오류가 발생했습니다.

function Client_Selected() { 
    var temp = $("input:radio[name='selected_client']:checked").val(); 
    var f_input_name = "fname_" + temp; 
    var l_input_name = "lname_" + temp;  
    var first = $("input[name='"+f_input_name+"']").val(); 
    var last = $("input[name='"+l_input_name+"']").val(); 
    var content = first + " " + last; 
    var thispage = $("input[name='current_page']").val(); 

    // Now Load the Notes!!! 
    dataString = 'web_id='+temp+'&Section='+thispage; 
    $.ajax({ 
     type: "POST", 
     url: "<?=URL_SSL_WEBSITE_ROOT?>/notes/loadClientNotesAJAX", 
     data: dataString, 
     success: function(msg) { 
      $("#notes_body").html(msg); 
      $("#note_client_name").html(content); 
     } 
    });   

    $("#button_client_name").html(content); 
    $("#note_client_name").html(content);  
    $("input:radio[name=selected_client]:checked").attr(checked, true); 
}; 

내 문제는 마지막 라인이다 : 첫째, 여기에 코드입니다. 버튼이 클릭되었을 때 라디오 버튼과 연결된 클라이언트의 목록이 있습니다. 클라이언트에 대한 정보를 얻거나 표시하기 위해 AJAX 호출을합니다. 마지막 줄이 없으면 두 번째 클라이언트를 선택하면 정보가로드되지만 새 클라이언트의 라디오 단추는 선택되지 않은 채로 대신 이전 (또는 첫 번째) 선택한 클라이언트 라디오 단추가 선택 상태로 유지됩니다. 내가의 오류가 마지막 행으로

: 모든 일 오류 및 확인 남아 적절한 확인란에도 불구하고

"검사는 정의되어 있지 않습니다." 그러나 파이어 폭스에 대한 새 업데이트로 ... 적절한 성공 체크 박스는 체크 된 채로 남아 있지만, 나의 성공 함수는 아약스 호출에서 실행되지 않으며, 자바 스크립트는 마지막 라인에서 멈춰 버린다. IE에서는 여전히 작동하지만 Firefox에서이 작업을 다시 수행해야합니다. 어떤 아이디어?

변경하려고 시도했습니다 : $ ("input : radio [name = selected_client] : checked"). attr ('checked', true); Success 함수가 실행되고 정보가 내 웹 페이지에 채워지지만 새로 선택된 체크 박스의 문제가 남아 있는지 확인하고 이전 체크 박스는 체크 된 상태로 유지됩니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

PHP가 구문 분석 한 후 브라우저에서 볼 수 있도록 코드를 표시해 주실 수 있습니까? – Anonymous

+0

URL을 얻는 것은 (PHP에 의해 파싱 된 후) 정확합니다. Firebug는 Ajax 호출로부터 올바른 응답을 표시하지만 마지막 행에 도달하면 고정됩니다. 나는 chaning 시도 ('checked', 'checked') ... 오류가 아니며 성공 함수가 실행되지만 여전히 그 변경 사항으로 검사되는 이전 라디오 버튼으로 되돌아 간다. 라디오 버튼의 값으로 확인할 라디오 버튼을 알려주려고합니다. 누군가가 저에게 그것을 시도하는 코드를 줄 수 있습니까, 나는 그것이 자주 필요하지 않다는 것을 확신하므로, 그것을 찾을 수 없었습니다 !!! 지금까지 답변 해 주셔서 감사합니다! – Brian

답변

1

ajax 호출의 성공 함수에서 마지막 줄을 시도해보십시오.

및 사용 ATTR

+1

$ (...). attr ('checked', true) – DmitryK

1

.attr('checked','checked'); 당신의 checbox/라디오 박스를 확인하고 .removeAttr('checked'); 은 선택을 취소 (사실, '확인'). 일부 인용 체크

$("input:radio[name=selected_client]:checked").attr('checked', 'checked'); 
1

보인다. 당신은 checked을 사용했습니다. 자바 스크립트가 존재하지 않는 checked이라는 변수를 찾고 있습니다. 따옴표가 붙은 'checked'을 문자열로 사용하려고했습니다.

그러나

,

당신이 당신의 선택에서 정의에 의해 이미 확인 된 라디오를 확인하기 때문에
$("input:radio[name=selected_client]:checked").attr('checked', true); 

는 아무것도 실행하지 않습니다. 여기서 뭐하려고?

라디오 버튼 onclick 처리기에서이 작업을 수행하는 경우 함수 실행 중 라디오 :checked 라디오가 새로 클릭 된 라디오가 아니므로 이전에 확인 된 라디오가됩니다. onclick 이벤트 처리가 완료 될 때까지 click-to-change-checkness가 실제로 통과한다는 것은 아닙니다.onclick 동안 새 라디오를 찾으려면 기능 호출 방법에 따라 this 또는 event 개체를 봐야합니다. 다른 답변을 다시


:

ATTR는

우리는이를주는 중지하십시오 수 ('확인' '확인')? 그것은 효과가 있지만 생각하는 이유 때문이 아닙니다. jQuery attr()이 아니며은 HTML 특성을 설정합니다 (브라우저 버그를 해결하려고하는 경우는 예외). JavaScript 속성을 설정하지만 HTML 속성과 일치하도록 이름을 수정하려고합니다. 따라서 :

attr('checked', true); 

또는 false 해제하는 경우 올바른 방법입니다. 'checked' 값은 부울 속성에 대해 평가할 때 진실이기 때문에 작동합니다. 비어 있지 않은 문자열은 정확히 동일합니다. HTML checked 속성은 체크 박스 (일명 defaultChecked)의 초기 설정, 하지 현재 checkedness 상태에 해당하기 때문에

는 jQuery를 경우, 설정 HTML 속성, attr('checked') 작동하지 않을했다.

+0

글쎄, 내게 오류를주지 않습니다. 그러나 새로 선택한 라디오 버튼을 선택하지 않는 것도 마찬가지입니다. 이전 아이디어로 되돌아갑니다 ... 어떤 아이디어? 감사 – Brian

1

그것은 확실히 정의되지 누락처럼

관련 문제