Javascript jQueryAnchorPreventDefault

Javascript jQueryAnchorPreventDefault,javascript,jquery,Javascript,Jquery,使用jQuery,如何从文本框中获取值,然后根据该值加载新页面 例如,假设文本框在page1.php上包含“hello”,那么如何更改锚定标记的默认行为以加载以下内容 page2.php?txt=hello 到目前为止,我有以下几点: <script type="text/javascript"> $(document).ready(function(){ $("a.mylink").click(function(event){ alert("link

使用jQuery,如何从文本框中获取值,然后根据该值加载新页面

例如,假设文本框在page1.php上包含“hello”,那么如何更改锚定标记的默认行为以加载以下内容

page2.php?txt=hello

到目前为止,我有以下几点:

<script type="text/javascript">
    $(document).ready(function(){
    $("a.mylink").click(function(event){
        alert("link clicked");
        event.preventDefault();
    });
});
</script>

$(文档).ready(函数(){
$(“a.mylink”)。单击(函数(事件){
警报(“点击链接”);
event.preventDefault();
});
});
您可以使用文本框的事件,因此在用户完成键入后,可以使用以下jQuery更新锚定:

$("#textBoxId").blur(function() {
    var text = $(this).val();
    var end = text.length == 0 ? "" : "?txt=" + text;
    $("a.mylink").attr("href", "Page2.php" + end);
});
只需更改锚点的href。然后,您不需要自己处理锚定
单击
。锚点将重定向到“Page.php?txt=Hello”。这将确保链接始终是最新的,如果用户右键单击并选择“在新窗口中打开”,该链接将起作用

或者你也可以用另一种方法来处理锚的点击:

$("a.mylink").click(function(e) {
   var text = $("#textBoxId").val();
   document.location.href = $(this).attr("href") + "?txt=" + text;
   e.preventDefault();
});

但是如果用户右键单击,则不会触发此事件。

在锚标记上设置一个单击事件,以便在单击时添加查询字符串

$('a').click(function() {
   var querystring = $('input').serialize();
   this.href += querystring;
});
这使用jQuery的方法。其中,选择器是要将字段传递到下一页的每个输入或字段。祝你好运


无需使用event.preventDefault。

Html

    <input type="text" id="demoQuery" />
    <a id='demoLink' href='javascript:'>Iam a link</a>

我并不认为直接使用
blur
来处理
单击有什么好处。事实上,这似乎是处理这种情况的更低效的方法。单击每页发生一次,而模糊事件可能发生多次。@BBonifield。我同意你的看法。我脑子里想的是使用模糊,因为它可以保证用户输入了一些信息,这显然是一种有缺陷的思想。因此,我添加了另一个建议(与您的建议类似),使用
preventDefault
而不是blanket
returnfalse允许任何传播的操作。此外,如果用户右键单击,模糊将起作用。这不是低效的,只是,即使用户右键单击链接以在新选项卡中打开,模糊也会起作用。请投票人解释他们的理由好吗?更新:刚刚用
.text()
替换了
.val()
,如果这是原因?+1,因为在第一个示例中,您实际上同时处理了左键和右键单击。如果您只有一个输入,则可以只处理该输入,并通过$(“#input').val()获取其值。如果只有一个输入,速度应该更快。。
jQuery('#demoLink').bind('click',function(e){
      e.preventDefault();
      document.location.href="someUrl.php?text="+ jQuery('#demoQuery').val();     
});