Я работаю так:
/** Open another app.
* @param context current Context, like Activity, App, or Service
* @param packageName the full package name of the app to open
* @return true if likely successful, false if unsuccessful
*/
public static boolean openApp(Context context, String packageName) {
PackageManager manager = context.getPackageManager();
try {
Intent i = manager.getLaunchIntentForPackage(packageName);
if (i == null) {
return false;
//throw new ActivityNotFoundException();
}
i.addCategory(Intent.CATEGORY_LAUNCHER);
context.startActivity(i);
return true;
} catch (ActivityNotFoundException e) {
return false;
}
}
Пример использования:
openApp(this, "com.google.android.maps.mytracks");
Надеюсь, что это кому-то поможет.
Необходимо сохранить select
элемент disabled
, но также и добавить другого скрытого input
с тем же именем и значением.
, Если Вы повторно включаете свой ВЫБОР, необходимо скопировать его значение в скрытый вход в onchange событии и отключить (или удалить), скрытый вход.
Вот демонстрация:
$('#mainform').submit(function() {
$('#formdata_container').show();
$('#formdata').html($(this).serialize());
return false;
});
$('#enableselect').click(function() {
$('#mainform input[name=animal]')
.attr("disabled", true);
$('#animal-select')
.attr('disabled', false)
.attr('name', 'animal');
$('#enableselect').hide();
return false;
});
#formdata_container {
padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<form id="mainform">
<select id="animal-select" disabled="true">
<option value="cat" selected>Cat</option>
<option value="dog">Dog</option>
<option value="hamster">Hamster</option>
</select>
<input type="hidden" name="animal" value="cat"/>
<button id="enableselect">Enable</button>
<select name="color">
<option value="blue" selected>Blue</option>
<option value="green">Green</option>
<option value="red">Red</option>
</select>
<input type="submit"/>
</form>
</div>
<div id="formdata_container" style="display:none">
<div>Submitted data:</div>
<div id="formdata">
</div>
</div>
Если выпадающий выбор только для чтения начиная с рождения и не должен изменяться вообще, возможно, необходимо ли использовать другое управление вместо этого? Как простое <div>
(плюс скрытое поле формы) или <input type="text">
?
Добавленный: , Если выпадающее не только для чтения все время и JavaScript используется для позволения/запрещения его, то это - все еще решение - просто изменяют DOM на лету.
Вместо самого выбора, Вы могли отключить все опции за исключением в настоящее время выбираемой опции. Это дает появление выпадающей работы, но только опция, которую Вы хотите, передала в, допустимый выбор.
<select id="countries" onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;">
<option value="1">Country1</option>
<option value="2">Country2</option>
<option value="3">Country3</option>
<option value="4">Country4</option>
<option value="5">Country5</option>
<option value="6">Country6</option>
<option value="7" selected="selected">Country7</option>
<option value="8">Country8</option>
<option value="9">Country9</option>
</select>
Протестированный и рабочий в IE 6, 7 & 8b2, Firefox 2 & 3, Opera 9.62, Safari 3.2.1 для Windows и Google Chrome.
Можно повторно включить избранный объект на, отправляют.
РЕДАКТИРОВАНИЕ : т.е. обычно отключая избранный тег (с отключенным атрибутом) и затем повторно включая его автоматически прежде, чем отправить форму:
Пример с jQuery:
Для отключения его:
$('#yourSelect').prop('disabled', true);
, Чтобы повторно включить их, прежде чем представление так, чтобы ДОБРАЛИСЬ / данные POST, включено:
$('#yourForm').on('submit', function() {
$('#yourSelect').prop('disabled', false);
});
, Кроме того, Вы могли повторно включить каждый отключенный вход или выбор:
$('#yourForm').on('submit', function() {
$('input, select').prop('disabled', false);
});
, следуя от предложения Grant Vatnower; Вот фрагмент jQuery, который делает его с функциями обработчика вместо атрибутов Direct Onxxx:
var readonlySelect = function(selector, makeReadonly) {
$(selector).filter("select").each(function(i){
var select = $(this);
//remove any existing readonly handler
if(this.readonlyFn) select.unbind("change", this.readonlyFn);
if(this.readonlyIndex) this.readonlyIndex = null;
if(makeReadonly) {
this.readonlyIndex = this.selectedIndex;
this.readonlyFn = function(){
this.selectedIndex = this.readonlyIndex;
};
select.bind("change", this.readonlyFn);
}
});
};
, Что лучший способ состоит в том, чтобы эмулировать атрибут "только для чтения" для избранного тега и все еще получить данные POST?
Просто делают это входом/текстовым полем и добавляют атрибут 'только для чтения' к нему. Если выбор эффективно 'отключен', то Вы не можете изменить значение так или иначе, таким образом, Вам не нужен избранный тег, и можно просто отобразить "выбранное" значение как только для чтения ввод текста. В большинстве целей UI я думаю, что это должно быть достаточным.