【发布时间】:2017-06-23 18:07:27
【问题描述】:
我有一个这样定义的表单
<form name="NewForm">
<td hidden>New</td>
<td><input name="name" type="text"></td>
<td><input name="url" type="url"></td>
<td><input type="submit" value="New"></td>
<td><input type="reset" value="Cancel"></td>
</form>
提交时我打电话
function submitForm(event,data)
{
console.log($(this));
var valid = true;
var changed = false
var input = $(this).find("input[name='name']");
console.log("Name");
console.log(input);
console.log(input.val());
console.log(input.prop( 'defaultValue' ));
}
控制台然后报告
Object { 0: <form>, context: <form>, length: 1 }
Name
Object { length: 0, prevObject: Object, context: <form>, selector: "input[name='name']" }
undefined
undefined
为什么我没有选择名为 name 的表单上的第一个输入?
编辑:整个代码文件
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
<body>
<div>
<select id="SystemActive">
<option value="Y">Active</option>
<option value="N">Deleted</option>
</select>
<button id="SystemRefresh">Refresh</button><br>
<table id="SystemTable" class="resultsGrid">
<thead>
<tr>
<th hidden>ID</th>
<th>Name</th>
<th>URL</th>
</tr>
<tr >
<form name="NewForm">
<td hidden>New</td>
<td><input name="name" type="text"></input></td>
<td><input name="url" type="url"></input></td>
<td><input type="submit" value="New"></input></td>
<td><input type="reset" value="Cancel"></input></td>
</form>
</tr>
</thead>
</table>
</div>
<script>
$(function() {
$("form").submit(submitForm)
});
function submitForm(event,data)
{
console.log($(event.target));
var valid = true;
var changed = false
var input = $(this).find("input[name=name]");
console.log("Name");
console.log(input);
console.log($(input).val());
input = $(this).find("input[name='name']");
console.log("Name2");
console.log(input);
console.log($(input).val());
input = $(this).find("input[name='name']");
console.log("Name3");
console.log(input.attr('name'));
event.preventDefault();
return false;
}
</script>
</html>
【问题讨论】:
-
因为
input[name='Name']和input[name='name']不一样 -
表格和选择器大小写都试过了,结果没有区别
-
区分大小写会有所不同。您的代码无法工作的唯一其他原因是因为
this不是您认为的形式。submitForm是如何被调用的? -
看一看——这个小提琴(即使使用 jQuery 1.7)再次按照您的预期工作,前提是您适当地绑定了
submit处理程序。 jsfiddle.net/1kaguv3r -
很有可能,这是因为你没有向我们展示你在做什么,你只是认为你在做。请提供一个最低限度的完整且可验证的示例,说明这如何不起作用:stackoverflow.com/help/mcve 包括浏览器和版本(以及您正在使用的
jquery的版本)。