2012-01-17 1 views
0

다른 요소가있는 텍스트 필드가 있는지 확인하려고하며 해당 값이 있으면 값을 설정하고 싶습니다. 그렇지 않으면 라디오를 추가하고 싶습니다. 다음 코드가 있지만 작동하지 않습니다.javascript + jquery 요소가 있는지 확인한 다음 값을 설정하고 다른 값을 설정하십시오.

$("ul").each(function(){ 
if (!($(this).find('input[value="9999"]').val())) { 
    var textfield = $(this).find('input[type="text"]'); 
    if (textfield.length) textfield.value="9999"; 
    //^this doesn't work. have also tried if ($(textfield).val()) 
    else $(this).append('<input name="'+name+'" type="radio" value="9999" checked="checked" />'); 
    //^this works 
} // if 
}); 

btw, name은 스크립트에서 동적으로 일찍 설정됩니다.

대답는 :

$("ul").each(function(){ 
if (!($(this).find('input[value="9999"]').val())) { 
    var txtfield = $(this).find('input[type="text"]'); 
    if (txtfield.length) $(txtfield).val("9999"); 
    // just changed this^line (above) 
    else $(this).append('<input name="'+name+'" type="radio" value="9999" checked="checked" />'); 
} // if 
}); 
+2

텍스트 필드의 값을'$ (textfield) .val ("9999")'로 설정하려고 시도 했습니까? – Anurag

+1

HTML을 포함하십시오. –

+0

''또는'' – jacob

답변

1

텍스트 필드는 이미 JQuery와 객체가 그래서 당신은 또한 반환) ("9999") textfield.val를 사용하여 값을 설정

+0

그게 전부입니다. 감사! – jacob

0

.find을 (필요하다 요소 목록이므로 하나 이상의 요소가 있으면 작동하지 않을 수 있습니다. 텍스트 필드 변수에 다른 .each()를해야 할 수도 있습니다.

+0

흠 ... 나는'textfield.value = "9999"'가 find에서 첫 번째 요소에 대해 실행될 것으로 예상했지만,'.each()'를 시도 할 것입니다. – jacob