我正在制作一个phonegap应用程序,并且我有一个页面,需要一些用户输入。如果选中了一个复选框(已报告),那么我想禁用除下一个复选框之外的所有用户输入。
[num,txt,raw] = xlsread([xls_PathName,'a.xlsx'],1);
xlswrite([xls_PathName,'b.xlsm'],raw,1);
当我在此问题中的代码段上运行代码时,它可以工作,但是当我通过phonegap应用程序运行代码,甚至只是运行HTML文件时,仅插入照片按钮被禁用,而其他3个元素被忽略。这使我认为这与Jquery Mobile有关,但我不确定是否完全诚实。
非常感谢您的帮助
答案 0 :(得分:0)
尽管我无法在您的环境中进行测试,但这可能与您使用this
的方式有关。为了更好地检查您的问题,我将onchange事件的代码转移到了函数中。我遇到的第一个问题是this
没有传递给函数。然后,我最初调用了disableControls(this.checked)
之类的函数,并使用参数来获取值。它起作用了,但让我认为这可能是您的问题。最好的办法是,您也尝试使用document.getElementById获取检查的值。
看一下我的示例,并在您的环境中复制它是否有效。
如果没有,则可以使用console.log元素来调试问题。
function disableControls() {
var checked = document.getElementById('reported').checked;
document.getElementById('1a').disabled = checked;
document.getElementById('1b').disabled = checked;
document.getElementById('comment1').disabled = checked;
document.getElementById('photo1').disabled = checked;
}
<html >
<meta charset="utf-8">
<body>
<div data-role="main" class="ui-content" id="MainBody">
<ul id="topBtns">
<li id="reportedLabel">
<label id="reportedLabel">
<input type="checkbox" id="reported" class="hidden" onchange="disableControls();">
Already reported
</label>
</li>
<li id="back"><button id="back" data-icon="arrow-l">Check 0</button></li>
</ul>
<br>
<h2 class="checkNum">Check #1</h2>
<p class="check">Some Text</p>
<label><input type="radio" id="1a" name="1">Answer1</label>
<label><input type="radio" id="1b" name="1">Answer2</label>
<br>
<textarea rows="4" placeholder="Type your comments here" id="comment1"></textarea>
<br>
<button id="photo1" onclick="insert_photo()">Insert Photo</button>
<button id="btnCont1" onClick="location.href='index.html#Q2'">Continue</button>
</div> <!-- Main -->
</body>
</html>