在javascript中使用innerhtml检查div标签内部?

时间:2010-09-03 13:33:14

标签: php html javascript ajax dom

我试图使用ajax验证检查制作注册表单。 验证检查没问题。当表单上的字段出现问题时,我会让它显示一个cross.png图像。

但我接下来要做的是不要让访问者在出现问题时申请注册表。

我试图通过

检查错误
if(document.getElementById('username_error_icon').innerHTML!='<img src="cross.png" width="15" height="15" />'){
document.form1.submit();    
}

哪个不起作用:/ 我愿意接受建议 请帮忙:/

5 个答案:

答案 0 :(得分:1)

元素的确切innerHTML值不是所有浏览器都是常量的。你不应该依赖它。有些浏览器重新排序属性顺序,重写“src”的路径。

你应该做点什么:

function isValid() {
    // Do your test and return true/false
}

// ...

function functionWhereYourCodeIs() {
    if (isValid()) {
        document.form1.submit();
    }
}

答案 1 :(得分:1)

验证这样的东西并不是一个好主意,比较两个可以改变的字符串。

相反,我建议你设置一个像bErrOccurred = true这样的变量,你可以将图像的来源设置为cross.png,然后你的if语句应如下所示:

if(!bErrOccurred) {
    document.form1.submit();   
}

答案 2 :(得分:1)

如果你还想这样做,你可以这样做

    <div id="username_error_icon">
        <img id="myValidationImage" src="cross.png" width="15" height="15" />
    </div>

<script type="text/javascript">
    var validationImage = document.getElementById('myValidationImage').src;
    var imageName = validationImage.lastIndexOf('.');
    validationImage = validationImage.substring(validationImage.lastIndexOf('/') + 1, imageName < 0 ? validationImage.length : imageName);
    if (validationImage != "cross")
        document.form1.submit();
    </script> 

答案 3 :(得分:0)

好吧因为看起来我需要更改整个ajax代码,只能将验证结果作为变量从php中获取,而不需要任何html标签等。

答案 4 :(得分:0)

好的问题解决了。 通过更改返回信息到ajax代码的PHP代码。 我更改了PHP代码以返回验证结果,没有任何html标签,但有0或1或2等。 然后更改javascript代码以在专用于这些返回值的html中进行适当的更改