2014-05-12 48 views
0

因此,我提交了一个表单,输入按钮的value是“View Insight”。当我使用Request提交表单时,我在URL = Insight + Insight中找到了一个令人讨厌的字符串。Jquery - 更改输入按钮的值而不显示值

我想让它在URL中说的是“Insight =已确认”。我试图使用jQuery来改变按钮的值,它的工作原理,但你看到它改变了用户界面的价值。如何在不显示用户的情况下更改我想要的值?

这是我到目前为止有:

JQUERY

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
    <script type="text/javascript"> 
      $(document).ready(function(){ 
      $("#savebtn").bind("click",function(){ 
        $(this).val('confirmed'); 
      }); 
    }); 
</script> 

HTML

<form action="confirm4.php" method="request"> 
    <input type="submit" name="insights" id="savebtn" value="View Insights" /> 
</form> 

回答

1

可以改变输入[类型=提交]以按钮[类型=提交]像这样:

<form action="confirm4.php" method="request"> 
    <input type="hidden" name="Insight" value="Confirmed"> 
    <button type="submit" id="savebtn">View Insights</button> 
</form> 
+0

虽然这会起作用,但它似乎有点侵入性。谢谢您的回答。 – ryan

+0

我不明白它是如何侵入的。它是语义的,现代的,并且可以在有或没有隐藏属性的情况下工作。假设后端脚本不需要'Insight = Confirmed'但欢迎您回答。下面是我敦促你研究的内容:http://css-tricks.com/use-button-element/ – bottens

1

首先,.bind已被废弃,你应该使用.on代替。

其次,你正在寻找的是

$("#savebtn").on("click",function(e){ 
    e.preventDefault(); //stop current submission 

    var $this = $(this); 
    $this.val('confirmed'); //change the value 
    $this.off("click"); //unbind the handler 
    $this.click(); //click the button again 
}); 
+0

谢谢扎卡里,我不知道“.bind”已被弃用。这工作完美。感谢您彻底解释它。 – ryan

+0

随时 - 祝你好运,快乐的编码! :) –