Javascript可以禁用/启用按钮,但不能禁用单选按钮或文本区域

时间:2018-08-17 21:17:27

标签: javascript jquery html phonegap

我正在制作一个phonegap应用程序,并且我有一个页面,需要一些用户输入。如果选中了一个复选框(已报告),那么我想禁用除下一个复选框之外的所有用户输入。

[num,txt,raw] = xlsread([xls_PathName,'a.xlsx'],1);
xlswrite([xls_PathName,'b.xlsm'],raw,1);

当我在此问题中的代码段上运行代码时,它可以工作,但是当我通过phonegap应用程序运行代码,甚至只是运行HTML文件时,仅插入照片按钮被禁用,而其他3个元素被忽略。这使我认为这与Jquery Mobile有关,但我不确定是否完全诚实。

非常感谢您的帮助

1 个答案:

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