href
属性を追加または削除しながらボタンの色を変更する JQuery 関数があります。のようなぼかしで開始すると完全に機能します
$("#name").blur(function() {
var standards_name = $("#name").val();
var standards_link = $("#standardslink");
var update_log = $("#update_log");
if(jQuery.inArray(standards_name, standards) != -1) {
if(companyid !== null) {
standards_link.attr("href", basic_href + "?standards_name=" + standards_name + "&company_id=" + companyid);
} else {
standards_link.attr("href", basic_href + "?standards_name=" + standards_name);
}
standards_link.css("color","#2EE52B");
} else if(standards_name == "") {
standards_link.removeAttr("href");
standards_link.css("color","black");
update_log.hide();
} else {
standards_link.removeAttr("href");
standards_link.css("color","#FF0011");
update_log.hide();
}
});
しかし、オートコンプリート ドロップダウン リストから選択したときに開始されるようにしたいと考えています。ここはもう手がつけられないところです。変数「standards_name」を手動で設定すると、貼り付けられたコードが機能します。たとえばvar standards_name = "xxxx";
、ui.item.ticker_name
値を変数に渡す必要があります。(「standards」配列と「companyid」はPHP
json_encode
、スクリプトの前半で設定されて渡され、問題なく動作します)
コードは次のとおりです。
$(function() {
$("#name").autocomplete({
source: "../autocomplete.php",
minLength: 2,
select: function(event, ui) {
$('#name').val(ui.item.ticker_name);
$('#mktcap').val(ui.item.mkt_cap);
var standards_name = ui.item.ticker_name;
var standards_link = $("#standardslink");
var update_log = $("#update_log");
if(jQuery.inArray(standards_name, standards) != -1) {
if(companyid !== null) {
standards_link.attr("href", basic_href + "?standards_name=" + standards_name + "&company_id=" + companyid);
} else {
standards_link.attr("href", basic_href + "?standards_name=" + standards_name);
}
standards_link.css("color","#2EE52B");
} else if(standards_name == "") {
standards_link.removeAttr("href");
standards_link.css("color","black");
update_log.hide();
} else {
standards_link.removeAttr("href");
standards_link.css("color","#FF0011");
update_log.hide();
}
}
});
});