Я получил неверное предупреждение!Что случилось? - PullRequest
0 голосов
/ 07 января 2012

У меня проблема с раскрытием фактических результатов переключателей. Я использую javascript, чтобы получить значение с помощью переключателя, в любом случае это удалось, НО, когда я создаю условие, где, если значение! = «Да» предупреждение, которое появляется, почему все еще «ОК», я хотел бы выбрать, если это «Нет», означает, что должно появиться предупреждение «НЕ ОКЕ».

Это форма:

<form id="form_test" name="form_test" method="POST">
<input type="hidden" id="menu_id" name="menu_id" value="<?=$menu_id?>"> 
<table align='center' width='auto' class='table1' cellpadding='5' cellspacing="0"> 
<tr> 
<td align='center' class='tabletitle'>No</td> 
<td align='center' class='tabletitle'>PC</td> 
<td align='center' class='tabletitle'>PN</td> 
<td align='center' class='tabletitle'>PCO</td> 
<td align='center' class='tabletitle'>GC</td> 
<td align='center' class='tabletitle'>CUR</td> 
<td align='center' class='tabletitle'>Codes</td>"; 
<td align='center' class='tabletitle'>Percent</td>"; 
<td align='center' width='5%' class='tabletitle'>Yes</td>"; 
<td align='center' width='5%' class='tabletitle'>No</td>"; 
</tr> 

[call to database] 

$num++; 

echo " <tr> 
<td class='tablecontent' align='center' valign='top'>$num</td> 
<td class='tablecontent' valign='top'>$pc</td> 
<td class='tablecontent' valign='top' nowrap>$pn</td> 
<td class='tablecontent' align='center' valign='top'>$pco</td> 
<td align='center' class='tablecontent' align='center' valign='top'>$gc</td> 
<td class='tablecontent' align='center' valign='top'>$cur</td> 
<td class='tablecontent2' valign='top'>$codes</td>"; 
<td align='center' class='tablecontent' valign='top'>$percent</td>"; 
<td align='center' class='tablecontent' valign='top'><input type='radio' id='yes' name='cek$num' value='yes' checked></td>"; 
<td align='center' class='tablecontent' valign='top'><input type='radio' id='no' name='cek$num' value='no' ></td>"; 
</tr>"; 

echo " 
<tr> 
<td><input type='button' name='accept' value='accept' onclick='getaccept()'></td>"; 
</tr>"; 
echo "</table>"; 
echo "<input type='hidden' id='jmlcek' name='jmlcek' value='$num'>"; 
echo "</form>"; 

Тогда вот коды Javascript для получения значения:

<script language="Javascript"> 
function getaccept(){ 
//var str = ''; 
var elem = document.getElementById('form_test').elements; 
var c = confirm("Yakin mau nerima?"); 
for (var i = 1; i <= elem.length; i++) 
{ 
var e = elem[i].value 
if (elem[i].type == "radio" && c) 
{ 
if (e != "yes" && elem[i].checked){ 
alert('NOT OKE'); 
return false; 
}else{ 
alert('OKE'); 
return true; 
} 
} 
} 
} 
</script> 

Например, количество данных, которые на самом деле равны трем, и все были выбраны «да», когда я выбираю «нет» на одном из существующих номеров, будет отображаться предупреждение «НЕ ОК», но на самом деле, когда я выбираю «нет» «Значение, которое я получил, было« да »и предупредило« ОК ».

Я много раз пытался сделать их правильными, но результаты все же неверны, так что же не так?

Спасибо.

Ответы [ 2 ]

1 голос
/ 08 января 2012

Вот что я получил:

function getApprove(){
    //var elem = document.getElementById('form_test').elements;
    var RadioButton = document.getElementsByTagName('input'); 
    var Approve = confirm("Are you sure?");

for (var i = 0; i < RadioButton.length; i++) 
    { 
        if (RadioButton[i].type == "radio" && Approve) 
        { 
            if(RadioButton[i].checked && RadioButton[i].value != "yes"){
                alert("NOT OKE"); 
                return false;
            }
        }
    }

for (var i = 0; i < RadioButton.length; i++) 
{ 
    if (RadioButton[i].type == "radio" && Approve) 
    { 
        if(RadioButton[i].checked && RadioButton[i].value == "yes"){
            alert("OKE"); 
            return true;
        }
    }
}

=> решено <= </p>

Большое вам спасибо p.campbell , за васзаботься и помогай мне m (_ _) m:)

0 голосов
/ 07 января 2012

Здесь происходит то, что вы оцениваете только радиокнопку FIRST, потому что у вас есть return оператор в обоих этих условиях в вашем (e != "yes" && elem[i].checked). Выход из функции.

Удалите ваши return заявления рядом с вашими предупреждениями. Они выходят из функции и не разрешают циклу перебирать элементы формы.

Вот демоверсия на JsBin .

...