1

您好,我正在寻找有关如何根据客户从下拉菜单中选择的账户类型来更改利率值的指导。

形式:

<form id="account" action="" method="post">
<select id = "acc_type">
<option value="current">Current</option>
<option value="savings">Savings</option>
</select>

<input type="text" id="interest" value="">

</form>

<script>
$("#account").change(function() {
    var rate = "0.6%";
    if $(#acc_type).val == ("current") {
        rate = "0.6%");
    } else if $(#acc_type).val == ("savings") {
        rate = "0.8%");
    }
    $(#interest).val = rate;
</script>

http://jsfiddle.net/rmjKV/ 我能解释一下为什么这不起作用吗?

4

6 回答 6

1

它不起作用,因为那不是有效的 JavaScript。使用像JSLInt这样的工具来检查您的代码以查看错误。

你在那个代码(中遗漏了很多。)

查看MDN 上的 if 语句

if (cipher_char == from_char) {
   result = result + to_char;
   x++;
} else {
   result = result + clear_char;
}

你看到你缺少什么了吗?检查周围的 ( 和 )。

现在 jQuery val 是一个方法,你不是在调用一个方法。你需要 ()。你也不能设置 .val 。

jQuery val()的文档

您的选择器也是错误的,您缺少引号。

学习使用您的控制台!它会告诉你错误。

于 2013-02-20T14:37:11.570 回答
1

你有很多语法错误和不正确的方式使用 jQuery 函数和选择器

$("#account").change(function() {
    var rate = "0.6%";
    if($('#acc_type').val() == "current") 
    {
        rate = "0.6%";
    }
    else if ($('#acc_type').val() == "savings") 
    {
        rate = "0.8%";
    }
    $('#interest').val(rate);
});  

您需要阅读更多关于 JS 语法和 jQuery 选择器和函数使用的信息

检查小提琴更新 http://jsfiddle.net/sedz/rmjKV/2/

于 2013-02-20T14:42:44.310 回答
0

JSHint 不会验证您的代码。除此之外,看起来您正在绑定form更改而不是acc_type更改。

$("#acc_type").change(function() {

}

有效的 JS 代码:

$("#acc_type").change(function()
{
   var rate = "0.6%";
   if ($("#acc_type").val() == "current")
   {
      rate = "0.6%";
   } else if ($("#acc_type").val() == "savings")
   {
      rate = "0.8%";
   }

   $("#interest").val(rate);
});

http://jsfiddle.net/rmjKV/5/

于 2013-02-20T14:38:13.690 回答
0

您的代码中有许多错误。我想我已经在下面修复了其中的大部分。

我还将您的代码包装在 jquery 的ready函数中,因此脚本不会尝试在页面完全加载之前添加事件等。

$(document).ready(function() {
    $('#account').change(function() {
        var rate = "0.6%";
        if ($('#acc_type').val() == "current") {
            rate = "0.6%";
        } else if ($('#acc_type').val() == "savings") {
            rate = "0.8%";
        }
        $('#interest').val(rate);
    })
})
于 2013-02-20T14:40:56.213 回答
0

像这样的东西

$(#acc_type)

应该

$('#acc_type')
于 2013-02-20T14:39:10.970 回答
-1
$("#acc_type").change(function() {
    var rate = "0.6%";
    if ($('#acc_type').val() == "current") {rate = "0.6%";}
    else if ($('#acc_type').val() == "savings") {rate = "0.8%";}
    $('#interest').val(rate);
});

在这里找到http://jsfiddle.net/rmjKV/8/你的 jsFiddle 工作,你的旧代码充满了错别字

于 2013-02-20T14:44:01.233 回答