admin管理员组文章数量:1356097
I have the following :
<select id="p1" name="p1">
<option value="ok">Ok</option>
<option value="closed">Closed</option>
<option value="ko">KO</option>
</select>
I'm wondering how can i run a script on the page only when the value is changed from 'Ko to Ok'.
I have the following :
<select id="p1" name="p1">
<option value="ok">Ok</option>
<option value="closed">Closed</option>
<option value="ko">KO</option>
</select>
I'm wondering how can i run a script on the page only when the value is changed from 'Ko to Ok'.
Share Improve this question edited May 23, 2014 at 11:28 Emanuel Vintilă 1,9494 gold badges25 silver badges37 bronze badges asked May 23, 2014 at 11:25 PaxBinPaxBin 1113 silver badges14 bronze badges5 Answers
Reset to default 3You can bind change event to your select. You would need to bind the event when the p1 is added to dom for that you can use document.ready
Live Demo
$(document).ready(function(){
$('#p1').change(function(){
alert(this.value);
});
});
Edit To pare it with last selection
Live Demo
prevVal = "";
$('#p1').change(function(){
if(prevVal === "ko" && this.value === "ok")
alert("from ko to ok");
prevVal = this.value;
});
you have to store previous value and on change check what is the previous value and what is current one like this:
$(document).ready(function(){
var previousvalue = "";
$('#p1').on('change',function(){
if(previousvalue === "ko" && $(this).val() === "ok")
{
alert("KO to OK");
}
previousvalue = $(this).val();
})
})
DEMO FIDDLE
you can also put onchange="your_function()" in select element
<select onchange="your_function()">
<option></option>
</select>
I think so this should work for you
var prev_val = null;
$('#p1').change(function(){
if(prev_val == "Ko" && this.value == "Ok"){//do something}
prev_val = this.value
});
Use Jquery .change()
Try this :
<select id="p1" name="p1">
<option value="ok">Ok</option>
<option value="closed">Closed</option>
<option value="ko">KO</option>
</select>
Jquery:
$('select#p1').change(function(){
if(this.value == "ok"){
//-- Your Code IF someone select "OK"
}
else if(this.value == "closed"){
//-- Your Code IF someone select "Closed"
}
else if(this.value == "ko"){
//-- Your Code IF someone select "KO"
}
});
According to OP question (run a script on the page only when the value is changed from 'Ko to Ok'
):
You can use Custom Data Attributes
for storing the previously selected option value.
Try this:
$("select#p1").one('focus', function () {
$(this).prop('data-previous', $('select#p1').val());
}).change(function(){
if($(this).prop('data-previous') == "ko" && $(this).val() == "ok"){
alert('Change');
}
$(this).prop('data-previous', $(this).val());
});
Working Example
Above code - We set data attribute data-previous
when the select drop-down focused once. and than we bind the .change()
event with select, so when options changed occurred we can check the previous selected and currently selected value and perform our operation (in the above example i am doing alert()
).
本文标签: javascriptHTML SELECTRun script onchange from option to anotherStack Overflow
版权声明:本文标题:javascript - HTML SELECT - Run script onchange from option to another - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744050448a2582326.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论