更改选择菜单并分配输入值

时间:2014-06-01 15:38:06

标签: jquery html

我有一个下拉列表,并且在onclick on any<时会尝试分配特定值。选项>我目前有以下代码,但它不起作用。不确定我错过了什么。

Jquery代码:

{literal}
<script>    
$(function() {
var values = {
    "pop": 110,
    "spop": 995,
    "imap": 113,
    "simap": 993,
    "default": 000
};

window.connection_type = function(val) {
    var port = values[val] || values["default"];        
    $('input[name="port_no"]').val(port);
}
});
</script>
{/literal}

下拉列表。

<select class="selmenu selmenu-200" name="type" onChange="connection_type(this.value)">
<option value="pop">POP</option>
<option value="spop">Secure POP</option>
<option value="imap">IMAP</option>
<option value="simap">Secure IMAP</option>
</select> 

<input type="text" name="port_no" value="" />

谁能告诉我这里缺少什么?

2 个答案:

答案 0 :(得分:2)

试试这个:

<强> JS

window.connection_type = function(val)
{
    var newValue="";
    switch(val) {
    case "pop":
        newValue = 110;
        break;
    case "spop":
        newValue = 995;
        break;
       //rest cases you probably want         
    }

    $('input[name="port_no"]').val(newValue);       
}  

fiddle

html js解决方案,如果要在选项元素中放置自定义属性:

<强> HTML

<select class="selmenu selmenu-200" name="type" onChange="connection_type(this)">
<option value="pop" specVal="110">POP</option>
<option value="spop" specVal="995">Secure POP</option>
<option value="imap">IMAP</option>
<option value="simap">Secure IMAP</option>
</select> 

<input type="text" name="port_no" value="" id="txtPort" />

<强> JS

window.connection_type = function(val)
{   
   $("#txtPort").val($(val).find("option:selected").attr("specVal"));      
}   

fiddle

答案 1 :(得分:0)

我是默认运算符||的忠实粉丝。您可以创建一个包含所有可能性的对象:

var values = {
    "pop": 110,
    "spop": 995,
    "imap": 113,
    "simap": 993,
    "default": 000
};

并根据默认情况下从dom输入的内容进行检查:

var port = values[val] || values["default"];        
$('input[name="port_no"]').val(port);

DEMO