0

一直在尝试看看这是多么灵活。http://jsfiddle.net/PJSha/4/我已将 get 元素从 Name 更改为 ClassName 两者都有效,但当我尝试使用 Id 实现它时不起作用...是否有原因

代码:

<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.21/themes/base/jquery-ui.css" type="text/css" media="all" />

<input type="text" id="foo" class="bar" name="domain">
<div onclick="check_domain_input()">Click</div>

<div id="dialog" title="Attention!" style="display:none">
    Please enter a domain name to search for.
</div>

<script>
    function check_domain_input()  {        
        var domain_val = document.getElementById('foo');

        if (domain_val[0].value.length > 0) {
            return true;
        }

        $( "#dialog" ).dialog();

        return false;
    }
</script>
4

4 回答 4

3

getElementsById应该是getElementById(没有s在之后Element)。它只返回一个元素的引用,或者null.

因为它返回一个引用,而不是 a NodeList,所以当您访问它的属性[0]时,它不是必需的。value

于 2012-07-18T06:04:58.433 回答
1

Idsexplicitly在您使用 ids 两次的页面中使用,它的 override 尝试使用不同的 ids 并让我知道它是否修复。

<input type="text" id="foo" class="bar" name="domain">
<div id="foo" onclick="check_domain_input()">Click</div>
于 2012-07-18T06:10:55.760 回答
0

要求您获取的元素也应使用id="foo"

请参考这个链接..一个实际的例子

于 2012-07-18T06:06:30.510 回答
0

或者通过这个,

onclick="check_domain_input(this)"

然后获取 id:

function check_domain_input(t) { alert(t.id); ...
于 2012-07-18T06:08:23.430 回答