#php #jquery #laravel
Вопрос:
Я пытаюсь заморозить флажок, но он не работает. Я упоминаю имя флажка как is_top_property. Пожалуйста, помогите мне. Вот код
<div class="panel">
<div class="panel-title"><strong>{{__("Top Property")}}</strong></div>
<div class="panel-body">
<div class="form-group">
<input type="checkbox" name="is_top_property" onclick="check();" @if($row->is_top_property) checked @endif value="1"> {{__("Enable Top Property")}}
<script>
public function check(){
if($("is_top_property").is(":checked")){
alert("Thanks for selecting");
$('is_top_property').attr('disabled',true);
}
}
</script>
</div>
</div>
</div>
Комментарии:
1. Добавьте класс во входные данные, например
class="is_top_property
, а затем добавьте отсутствующие.
$("is_top_property")
. Потому$("is_top_property")
что это означает, что вы ищете<is_top_property>
элемент, которого, конечно, не существует.2.
public function check(){
?? Это JavaScript, а не JAVA. Удалить общественность
Ответ №1:
Вот как правильно закодировать ваш пример в jQuery:
- Используйте правильный селектор — здесь
$("[name=is_top_property]")
, но вы также можете добавить класс и использовать$(".is_top_property")
- не используйте встроенную обработку событий
- Нам нужен тайм-аут, чтобы установить флажок перед оповещением
- Я также добавил код для визуального отключения метки
$(function() {
$("[name=is_top_property]").on("change", function() {
const checked = this.checked;
if (checked) setTimeout(function() { alert("Thanks for selecting") }, 10); // give time to show the checkmark
$(this)
.prop('disabled', checked)
.parent('label').toggleClass("disabled", checked)
});
});
.disabled {
color: grey
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input type="checkbox" name="is_top_property" value="1"> Enable Top Property</label>
Ответ №2:
Функция Check() там не требуется, просто нужно найти флажок в элементе dom и отключить, когда он установлен.
$(document).ready(function() {
$("#is_top_property").click(function(){
if($(this).prop("checked") == true){
$(this).attr('disabled',true);
}
});
}