我正在使用jquerymobile 1.4.2。这是我在我的页面中使用的代码
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"> </script>
</head>
<body>
<script>
function myFunction()
{
document.getElementById("myText").disabled=true;
}
</script>
<p>Click the button to disable the text field.</p>
<select onchange="myFunction()"><option>1</option><option>2</option></select>
First Name: <input type="text" id="myText">
</body>
</html>
上述程序运行正常但是如果我将其更改为此代码
<script>
function myFunction()
{
document.getElementById("myText").disabled=false;
}
</script>
<p>Click the button to disable the text field.</p>
<select onchange="myFunction()"><option>1</option><option>2</option></select>
First Name: <input type="text" id="myText" disabled="disabled">
然后它不起作用请帮我如何使用onchange()函数启用文本字段
答案 0 :(得分:1)
jQM增强了输入并创建了一个Textinput小部件,它有自己的启用/禁用方法(http://api.jquerymobile.com/textinput/#method-disable)
在您的示例中,要启用输入:
function myFunction() {
$("#myText").textinput("enable");
}
此外,您应该使用不显眼的javascript和jQM页面功能。例如从标记中删除onclick:
<select id="theSelect" >
<option>1</option>
<option>2</option>
</select>First Name:
<input type="text" id="myText" disabled="disabled" />
在pagecreate jQM事件中添加处理程序:
function myFunction(selVal) {
if (selVal == '2'){
$("#myText").textinput("enable");
} else {
$("#myText").textinput("disable");
}
}
$(document).on("pagecreate", "#page1", function () {
$("#theSelect").on("change", function(){
var v = $(this).val();
myFunction(v);
});
});
这是 DEMO