我有这个表格:
<form action="index.php?explore=browse" method="post">
<input type="hidden" name="artist" value="<?=$artist?>" />
<input type="hidden" name="event" value="<?=$event?>" />
<input type="hidden" name="date" value="<?=$date?>" />
<a onclick="this.form.artist.value=all; this.form.submit();return false" href="#">All</a>
</form>
我想知道:
- 为什么它把“全部”这个值赋予艺术家字段?
- 这是 JavaScript 吗?或者简单的 HTML?
- 用 jQuery/JS Handler 翻译这个更好还是这个更好? (轻量级、跨浏览器……等等)
希望你能帮助我!
最佳答案
您需要更改
this.form.artist.value=all;
到
this.parentNode.artist.value='all';
您使用它的方式做出了两个错误的假设
- 它假设表单内的链接具有表单属性。但事实并非如此。只有 input 元素具有 form 属性。使用
parentNode
应该可以满足您的特殊情况,因为链接是表单元素的直接子元素。 - 它期望名称为 all 的变量存在,并尝试将该变量的内容放入输入中。
通过将 all 包裹到单引号
'
中使其成为一个字符串,应该可以满足您的要求。
演示位于 http://jsfiddle.net/gaby/vzuFD/
<小时/>使用 jQuery 你可以做到
<form action="index.php?explore=browse" method="post">
<input type="hidden" name="artist" value="<?=$artist?>" />
<input type="hidden" name="event" value="<?=$event?>" />
<input type="hidden" name="date" value="<?=$date?>" />
<a id="all" href="#">All</a>
</form>
和
<script type="text/javascript">
$(function(){
$('#all').click(function(){
$(this)
.closest('form')
.find(':input[name=artist]')
.val('all')
.end()
.submit();
});
});
</script>
关于php - 关于这个的问题。来自 ."operation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858143/