валидация JavaScript - объект rbColorId все еще обнаружен - PullRequest
0 голосов
/ 05 января 2010
function submitcheck()
{

var f = document.form1;

if (f.rbTemplate!= null)    
{
    ...
        alert('Please choose template');
        return false;
    ...
}

if (f.rbColorId!= null)
{
    ...
        alert('Please choose template color');
        return false;
    ...
}
}



function ShowColor()
{
    var f= document.form1;
    iTemplate= getSelectedRadioValue(f.rbTemplate);

    var params= "iTemplate="+iTemplate;
    var url= "ajaxColor.php";
    doShowOutput(params, url, retrieveColorsAvailableForThisTemplate);
}


function retrieveColorsAvailableForThisTemplate()
{
    if(httpObject.readyState == 4)
    {
        document.getElementById('showtime').style.display="";
        document.getElementById('showtime').innerHTML= httpObject.responseText;
    }
}



    <input type='radio' name='rbTemplate' id=1 value=1 onclick='ShowColor();'>
<img src="template1.jpg" />

<br />

    <input type='radio' name='rbTemplate' id=2 value=2 onclick='ShowColor();'>
<img src="template2.jpg" />    



    <div id=showtime></div>    

при нажатии на rbTemplate id = 1, ajax-запрос вернет доступные цвета для этого шаблона в id = showtime

Например:

<table>
<tr>
<td bgColor="#FF0000"><input type=radio name=rbColorId id=1 value=1></td>
<td bgColor="#FF0007"><input type=radio name=rbColorId id=2 value=2></td>
<td bgColor="#FF0003"><input type=radio name=rbColorId id=3 value=3></td>
</tr>

</table>

при нажатии на rbTemplate id = 2, ajax возвращает вывод в виде простого сообщения в id = showtime, потому что этот шаблон фактически не имеет никакого выбора цвета)

Например: "<p>this template don't have any color</p>"

Теперь проблема:

Шаг 1: после того как я нажму на rbTemplate id = 1 и без выбора цвета, затем нажмите «Отправить» (javascript предложит мне выбрать цвет),

Шаг 2: затем я повторяю снова, нажимая на rbTemplate id = 2, нажимая кнопку отправки еще раз, в этот раз не должно запрашиваться выбор цвета, потому что у второго шаблона нет цвета. НО подсказка javascript все еще появляется. Проверка JS все еще может обнаружить f.rbColorId (возможно, из кэша или ...) ... Справка ...

Помощь

1 Ответ

0 голосов
/ 05 января 2010

Поскольку вы просто выводите результат вызова Ajax, я бы сказал, что вам нужно изменить свою логику в ajaxColor.php

Но если вам не нужен цвет, почему бы не удалить событие полностью?

<input type='radio' name='rbTemplate' id=2 value=2 />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...