2015-03-25 86 views
0

我一直在尝试一些jQuery编码,但似乎没有工作。在#vat输入中,我需要占位符进行更改。当我选择选项时更改占位符的输入

<select id="VatExpense"> 
     <option value="" disabled selected></option> 
     <option value="0"></option> 
     <option value="1"></option> 
     <option value="0"></option> 
     <option value="0"></option> 
     <option value="1"></option> 
    </select> 

    <input type="text" id="vat" placeholder="Rate"> 
+0

问题出在哪里?此外值属性应该是唯一的! 但是,如果文本属性不重要,那么你可以这样做。 – Legends 2015-03-25 11:31:45

+1

哪里有一些jQuery编码代码? – lshettyl 2015-03-25 11:32:52

+0

当我选择一个选项时,我需要#vat输入占位符更改。当我选择一个value = 0的选项时,#vat的占位符应该变为20%,如果它的值为1,则为0%@Legends – Mark 2015-03-25 11:34:12

回答

0

您应该使用data-属性,不value来确定利率。

Demo fiddle

HTML:

<select id="VatExpense"> 
    <option data-rate="20" value="" disabled selected>Expense Type</option> 
    <option data-rate="20" value="0">Telephone</option> 
    <option data-rate="0" value="1">Public Transport & Taxis</option> 
    <option data-rate="20" value="2">Computer Consumables</option> 
    <option data-rate="20" value="3">Subsistence</option> 
    <option data-rate="0" value="4">Overseas Travel</option> 
</select> 

然后在jQuery的阅读,并相应地改变占位符。

脚本:

<script type="text/javascript"> 
    $(function(){ 
     $("#VatExpense").change(function(){ 
     $("#vat").attr("placeholder", $(this).find(":selected").data("rate") + "%"); 
     }); 
    }); 
</script> 
+0

工程像魅力。非常感谢!! – Mark 2015-03-25 12:56:10

0

你可以这样说:

(function() { 
    var placeholders = { 
     'value_':'Rate', 
     'value_0':'Standard rate 20%', 
     'value_1':'Zero Rate 0%' 
    }; 
    $("#VatExpense").on('change', function(e) { 
     $("#vat").prop('placeholder', placeholders['value_' + $(this).val() ]);   
    }); 
})(); 
+0

我认为这是一个更喜欢['attr' over'prop']的地方(http://stackoverflow.com/questions/5874652/prop-vs-attr)。不是吗? – JNF 2015-03-26 07:57:00

0

下面尝试这样Demo Here使用attr()

$('#VatExpense').change(function(){  
var selectedval = $(this).val();  
if(selectedval == 0){ 
    $('#vat').attr('placeholder','Standard rate 20%'); 
}else if(selectedval == 1){ 
$('#vat').attr('placeholder','Zero Rate 0%'); 
}  
}); 
0

你可以试试这个:

的Jquery:

$("#VatExpense").on("change", function() { 
    var vatExpense = $("#VatExpense option:selected").val(); 
    var vatPlaceholder = "Rate"; 
    if (vatExpense == 0) { 
     vatPlaceholder = "Standard rate 20%"; 
    } else if (vatExpense == 1) { 
     vatPlaceholder = "Zero Rate 0%"; 
    } 
    $("#vat").attr("placeholder", vatPlaceholder); 
}); 

的jsfiddle:http://jsfiddle.net/ghorg12110/kzmL0e1j/

相关问题