onchange()函数是否适用于jquery mobile 1.4.2

时间:2014-04-24 13:06:26

标签: jquery-mobile

我正在使用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()函数启用文本字段

1 个答案:

答案 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