2014-12-03 3 views
1
function getData(id) { 
    $.getJSON('process.php?action=lookup&id='+id, parseInfo);  
    return false; 
} 

// Display data in form 
function parseInfo(data) { 
    if (data.id > 0) { 
    $('#txtaction').val('update'); 
    $('#txtbook_id').val(data.id); 
    } else { 
    $('#txtaction').val(''); 
    $('#txtbook_id').val(''); 
    } 
} 

위의 방법을 참조하면 양식 필드를 채우는 올바른 방법입니까? 양식 필드를 채우려는 긴 목록과 변경할 속성이 있으면 getData 함수를 호출 할 때 문제가 발생합니까?JQuery - 형식으로 데이터를 채우는 올바른 방법

의견을 보내 주셔서 감사합니다.

function parseInfo(data) { 
    var valid = data && data.id > 0; 
    $('#txtaction').val(valid ? 'update' : ''); 
    $('#txtbook_id').val(valid ? data.id : ''); 
} 

사이드 : 내가 만들 것

+0

나는 간단하고 깨끗합니다. – rfornal

+1

모든 것이 잘 보입니다. – mudasobwa

+0

이 양식을 매우 크게 만들려면 AngularJS와 같은 양식지지 라이브러리를 고려해보십시오.이 라이브러리는 많은 어려움을 많이 겪습니다. –

답변

1

한 팅겨는 필드를 추가, 너무 쉽게 셀렉터 및 val 전화를 반복하지 않도록하고 하나 if/else의 절반 또는 기타를 업데이트하는 것을 잊지하는 것입니다 참고 :이 작업을 수동으로 수행하는 것은 매우 작은 프로젝트에서는 좋지만 크기에 관계없이 다양한 MVC 및 MVVC 도구 또는 프레임 워크를 살펴볼 수 있습니다. 많이있다.

+1

감사합니다. T.J. Crowder! 나는 너에게서 새로운 것을 배웠다! – ShirleyKuanSF

0

올바른 것 같습니다. 그러나 JSON 속성 이름에는 대시가 포함될 수 없으므로이 문제를 해결할 수있는 대체 방법은 다음과 같습니다.

if (data['id'] > 0) { 
    $('#txtaction').val('update'); 
    $('#txtbook_id').val(data['id']); 
} else { 
    $('#txtaction').val(''); 
    $('#txtbook_id').val(''); 
} 
+1

* "JSON 속성 이름에 대시가 포함될 수 없다는 것을 명심하십시오."* A) 가능합니다 (JSON * 속성 * 이름을 의미하는 경우). ** JavaScript 식별자 **는 할 수 없습니다. B)'id'는 그것에 대시가 없습니다. –

+0

이드는 분명히 대시를 포함하지 않은 예일뿐입니다. – strapro

+0

나는 정정당했습니다. Javascript와 관련한 문제인지는 몰랐습니다. 고마워요. – strapro

관련 문제