我有以下三个控件,它们都有相同的名为“txt11”的类,我想将所有三个文本框的只读属性更改为 false 我点击编辑按钮。
$(".btn11").click(function(){
$(".txt11").focus();
$(".txt11").prop("readonly", false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input readonly="" name="txtSkill[]" value="database" class="txt11">
<input readonly="" name="txtSkill[]" value="sql" class="txt11">
<input readonly="" name="txtSkill[]" value="mysql" class="txt11">
<input type="button" value="Edit" name="btnEdit11"id="btnXyz2" class="btn11"/>
我使用相同类的原因是我在运行时动态呈现这些输入框,所以我不确定将呈现多少个文本框。
但只有最后一个文本框被设置为 readonly=false
上面的输入框仍然设置为只读。
最佳答案
问题来自焦点 $(".txt11").focus();
,它会聚焦最后一次出现的类 txt11
,因此您应该指定您要关注的对象,例如:
$(".txt11:eq(0)").focus(); //Focusing the first input
类的 prop
会将属性分配给所有输入。
注意:您不能聚焦readonly
字段,因此您应该在将readonly
设置为 之后添加聚焦语句假的
。
$(".btn11").click(function(){
$(".txt11").prop("readonly", false);
$(".txt11:eq(0)").focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input readonly="" name="txtSkill[]" value="database" class="txt11">
<input readonly="" name="txtSkill[]" value="sql" class="txt11">
<input readonly="" name="txtSkill[]" value="mysql" class="txt11">
<input type="button" value="Edit" name="btnEdit11"id="btnXyz2" class="btn11"/>
按组编辑聚焦:
var last_class = 'txt11';
$(".btn11").click(function(){
$(".txt11").prop("readonly", false);
$(".txt11:eq(0)").focus();
});
$('body').on('focus', "input:text", function(){
var current_class = $(this).prop('class');
if( $(this).prop('readonly') ){
if(current_class!=last_class){
$("."+last_class).prop("readonly", true);
$("."+current_class).prop("readonly", false);
}
}
last_class = current_class;
});
input[readonly]{
background-color: #EEE;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input readonly="" name="txtSkill[]" value="database" class="txt10">
<input readonly="" name="txtSkill[]" value="sql" class="txt10">
<input readonly="" name="txtSkill[]" value="mysql" class="txt10">
<input readonly="" name="txtSkill[]" value="database" class="txt11">
<input readonly="" name="txtSkill[]" value="sql" class="txt11">
<input readonly="" name="txtSkill[]" value="mysql" class="txt11">
<input readonly="" name="txtSkill[]" value="database" class="txt12">
<input readonly="" name="txtSkill[]" value="sql" class="txt12">
<input readonly="" name="txtSkill[]" value="mysql" class="txt12">
<input type="button" value="Edit" name="btnEdit11"id="btnXyz2" class="btn11"/>
关于javascript - 如何在具有相同类的多个文本框上将 readonly 属性设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40863785/