繁体   English   中英

javascript验证-仍然检测到rbColorId对象

[英]javascript validation- rbColorId object is still detected

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(可能是从缓存或...)...帮助...

救命

当您只是从Ajax调用输出结果时,我想您需要在ajaxColor.php中更改逻辑

但是,如果您真的不需要颜色,为什么不完全删除事件呢?

<input type='radio' name='rbTemplate' id=2 value=2 />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM