作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
应该很简单,但我就是不明白为什么这行不通!首先,我是一名 n00b。
我有两个输入框,用户需要填写,名称和金额。如果这些已填写,我会更改 URL 上的查询字符串,如果没有,则为它们提供预定义的 URL 查询字符串。
我无法得到一个可用的 jsfiddle,因为我的查询字符串的 & 符号发生了一些奇怪的事情,叹气。
基本上,我无法在点击时更改 URL。
这是我的代码,以及感兴趣的人的非工作 jsfiddle:http://jsfiddle.net/9uk68m6x/
<form>
<input type="text" class="name">
<input type="text" class="amount">
<script type="text/javascript">
$(function() {
$('.makeUrl').click(function(){
var url = 'http://www.website.com',
nameVal = $("input.name").val(),
amountVal = $("input.amount").val();
if (nameVal != ''){
//if name value isn't blank, then
$("a.makeUrl").prop("href", url+'&name='+nameVal+'&free_amount=1&amount='+amountVal+'00');
}
else (nameVal == ''){
$("a.makeUrl").prop("href", "http://www.website.com&free_amount=1&amount=200");
}
});
});
</script>
<a href="http://www.website.com&free_amount=1&amount=200" class="ctaButton makeUrl">Donate</a>
</form>
最佳答案
您的脚本中存在语法错误:else
不接受任何类型的参数。请改用else if
。但是,由于您的条件是二进制的(nameVal
要么为空,要么不为空),那么您实际上可以不需要第二个 if
语句。
因此,我做了一些更改:
nameVal
是否为空或不使用表达式 !nameVal
。.attr()
而不是 .prop()
更改 href
属性。$(this)
,因为它已被缓存这是 fiddle :http://jsfiddle.net/teddyrised/9uk68m6x/4/
$(function () {
$('.makeUrl').click(function (e) {
// Declare variables
var url = 'http://www.website.com',
nameVal = $("input.name").val(),
amountVal = $("input.amount").val();
// Conditional statement
if (nameVal) {
//if name value isn't blank, then
$(this).attr("href", url + '&name=' + nameVal + '&free_amount=1&amount=' + amountVal + '00');
} else {
$(this).attr("href", "http://www.website.com&free_amount=1&amount=200");
}
// Check updated href
console.log($(this).attr("href"));
});
});
关于javascript - 从输入框获取值,根据一定条件改变url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276393/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!