当我选择特定的单选按钮时,我试图突出显示表单中的输入字段。虽然我已经完成了这个,但我不明白为什么我的特定解决方案有效。
这是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>
感谢任何帮助或建议!
答案 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">