php - 关于这个的问题。来自 ."operation"

标签 php javascript jquery html

我有这个表格:

<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>

我想知道:

  1. 为什么它把“全部”这个值赋予艺术家字段?
  2. 这是 JavaScript 吗?或者简单的 HTML?
  3. 用 jQuery/JS Handler 翻译这个更好还是这个更好? (轻量级、跨浏览器……等等)

希望你能帮助我!

最佳答案

您需要更改
this.form.artist.value=all;

this.parentNode.artist.value='all';

您使用它的方式做出了两个错误的假设

  1. 它假设表单内的链接具有表单属性。但事实并非如此。只有 input 元素具有 form 属性。使用 parentNode 应该可以满足您的特殊情况,因为链接是表单元素的直接子元素。
  2. 它期望名称为 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>

演示位于 http://jsfiddle.net/gaby/vzuFD/1/

关于php - 关于这个的问题。来自 ."operation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858143/

相关文章:

javascript - 当用户用 'W' 按 'shift' 时如何获取

php - 在 Windows 中使用 php 设置 cron 作业

javascript - jquery 将动态 innerhtml 存储到可用的 jquery 变量中

php - 如何用新行正确加载sql数据

javascript - 查看网站图片下载进度?

javascript - 使用可点击的 Jquery trim 文本 "More"但保留文本格式

javascript - 删除表中单行的类别

jquery - 如何防止网站响应

php - 如何使用 Symfony2 使 form_rest() 不显示字段?

php - AuthenticationFailedServer 无法对 azure 中的请求进行身份验证