专注于不使用ID的输入字段

时间:2014-09-11 15:32:50

标签: javascript jquery html

当我选择特定的单选按钮时,我试图突出显示表单中的输入字段。虽然我已经完成了这个,但我不明白为什么我的特定解决方案有效。

这是HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <script type="text/javascript" src="https://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
    <meta charset="UTF-8">
    <script type="text/javascript" src="script.js"></script>
    <title>Testing jQuery on Forms</title>
</head>
<body>
    <div id="form">
    <h3>The form</h3>
        <form name="main_form">
            <fieldset style="width: 300px;">
                <legend>General Information</legend>
                <p>Do you have a name?</p>
                <input style="float: left" name="name_or" id="name_or_yes" type="radio" value="yes">
                <legend for="name_or_yes">Yes</legend>
                <input style="float: left" name="name_or" id="name_or_no" type="radio" value="no" checked="checked">
                <legend for="name_or_no">No</legend>
                <br/>
                Name: <input type="text" name="name" id="#name_field">
            </fieldset>
        </form>
        <button id="submit_form">Submit</button>
    </div>
    <div id="results"></div>
</body>
</html>

这是JS:

$(document).ready(function() {
    $('#name_or_yes').click(function() {
        $('input[name=name]').focus();
    });

    $('#submit_form').click(function() {
        var toAdd = $("input[name=name]").val();
        $('#results').append("<p>"+toAdd+"</p>");

    });
});

我不明白为什么当我使用它的id(#name_field')时,为什么focus()在名称输入字段上不起作用。它只在我使用输入时才有效[name = name ] 方法。这是令人困惑的,因为以下工作非常好:

<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(function(){
    $("#txtfocus").focus();
});
</script>
</head>

 <body>
     <input type="text" id="txtfocus2"><br/>
     This text box is set focused: <input type="text" id="txtfocus">
 </body>

</html>

感谢任何帮助或建议!

3 个答案:

答案 0 :(得分:5)

在这里查看id

<input type="text" name="name" id="#name_field">

试试这样:

<input type="text" name="name" id="name_field">

#是id 选择器,但不应出现在HTML中。

答案 1 :(得分:1)

谢谢你们两位!

当你花太多时间看同一段代码时会出现这种错误!

我想向你投票,但我没有足够的声誉点。 :(

答案 2 :(得分:0)

input的ID应为"name_field"而不是"#name_field"

<input type="text" name="name" id="name_field">