我正在尝试附加一个id为从输入文本字段输入的值的链接。我到目前为止搜索stackoverflow但id不起作用!
<script type="text/javascript">
jQuery(function(){
$("#txt_name").keypress(function() {
var value = $("#txt_name").val();
});
$("a#coupon_link").attr("href", function(i) {
return href + '&discount_code='.text(value);
});
});
</script>
这就是html的样子
<form>
<fieldset>
<input id="txt_name" type="text" value="discount" />
</fieldset>
</form>
<a id="coupon_link" href="https://www.e-junkie.com/ecom/gb.php?c=cart&i=XXXXXX&cl=YYYYYY&ejc=2" target="ej_ejc" class="ec_ejc_thkbx" onClick="javascript:return EJEJC_lc(this);"><img src="http://www.e-junkie.com/ej/ej_add_to_cart.gif" border="0" alt="Add to Cart"/></a>
答案 0 :(得分:3)
你可能意味着这个:
$(function() {
$("#coupon_link").on('click', function(e) {
e.preventDefault(); // apparently not needed
location.href = $(this).attr('href') + '&discount_code=' + encodeURIComponent($('#txt_name').val());
});
});
您不必在按键上更新#txt_name
的值;你只需要在按下链接时使用该值。
答案 1 :(得分:2)
修复你的代码:
$(function(){
$("#txt_name").keypress(function() {
var value = $("#txt_name").val();
var link = $("#coupon_link");
var originalHref = link.attr('originalHref');
if (!originalHref) {
originalHref = link.attr("href");
link.attr("originalHref", originalHref)
}
link.attr("href", originalHref + '&discount_code='+value);
});
});
有几点需要注意:
val
的返回可以直接连接,您无需尝试将其更改为文本总的来说,一个更清洁的解决方案不是改变链接,而是点击链接建立href:
$("#coupon_link").click(function(e) {
location = this.href + '&discount_code=' + $('#txt_name').val();
});
答案 2 :(得分:1)
不确定理解,但看起来像范围问题尝试此javascript:
<script type="text/javascript">
jQuery(function(){
var value = 0;
$("#txt_name").keypress(function() {
value = $("#txt_name").val();
$("a#coupon_link").attr("href", function(i) {
return href + '&discount_code=' + encodeURIComponent(value);
});
});
});
</script>
答案 3 :(得分:0)
您可能需要在按下某个键时更改href,而不仅仅是在页面加载时。为此,你必须在keyup函数中替换href,如下所示:
$(function(){
var link = $("a#coupon_link");
link.data('href', link.attr("href"));
$("#txt_name").on('keyup', function() {
link.attr("href", link.data('href') + '&discount_code='+ this.value);
});
});
为了不多次附加&discount_code=***
,您需要将原始href存储在某处,就像在数据属性中一样。
答案 4 :(得分:0)
我认为你需要这个:
<script type="text/javascript">
$(function(){
$("#txt_name").keypress(function() {
var value = $("#txt_name").val();
$("a#coupon_link").attr("href",href+'&discount_code='+value.toString);
});
});
</script>
看看href
不知道你在哪里有var,如果需要的话还可以删除那个
答案 5 :(得分:0)
试试这个:
jQuery(function(){
$("#txt_name").keypress(function() {
var value = $("#txt_name").val();
$("a#coupon_link").attr("href", '&discount_code=' + String(value));
});
});
答案 6 :(得分:0)
这不起作用,因为在触发按键事件之前调用函数时href没有被更改。考虑用blur替换keypress并在调用blur()时更新href
答案 7 :(得分:0)
这个让我从输入字段获取值并使用jquery将其附加到现有链接。
$('#qty').on('keyup', function() {
var theQty = 0;
theQty = $("#qty").val();
var oldHref=$("a#buybtn").attr("href");
$("a#buybtn").attr("href",oldHref+ '&qty=' + String(theQty));
});