我尝试改变输入标签的输入类型,但启用和禁用功能似乎不能在整数上工作,只能在文本字段上工作。我怎样才能解决这个问题呢?
我的提交是明天,这是我的搜索代码:
<script type="text/javascript">
$('#exactButton').live('click', function(){
$(this).prev().prev().prev().prev().prev().removeAttr('disabled');
$(this).prev().prev().prev().attr('disabled',true);
$(this).prev().prev().prev().prev().attr('disabled',true);
});
$('#rangeButton').live('click',function(){
$(this).prev().prev().removeAttr('disabled');
$(this).prev().prev().prev().removeAttr('disabled');
$(this).prev().prev().prev().prev().attr('disabled',true);
});
})
</script>
这是我的HTML代码:
<button id="button">Add List</button><br><br>
<form id ="form" name="search" method="get" action="test.php">
<div id="div">
<select name ="select" >
...options...
</select>
Value:<input type="text" name="exact" id="exactField" />
From: <input type="text" name="from" id="fromField" />
To: <input type="text" name="to" id="toField" />
<br>
<input type="button" name="answer" value="Range" id="rangeButton" />
<input type="button" name="answer" value="Exact" id="exactButton" />
</div>
<br>
<input type="submit"name="search" value="Submit">
</form>
没有输入类型"integer"。根据HTML 4,只有text
, password
, checkbox
, radio
, submit
, reset
, file
, hidden
, image
和button
。大多数网站使用"文本"表示数字;这种缺乏特异性是JavaScript的原始原因之一:检测人们将字母输入到用于数字的文本字段中(和/或警告他们在提交之前需要修复这些值)。
在HTML 5中,增加了额外的输入类型:search
、tel
、url
、email
、datetime
、date
、month
、week
、time
、datetime-local
、range
和color
现在可用;这使得标记更具可读性,并允许开发人员将一些客户端验证留给浏览器。
目前推荐的数字输入方式是使用type="number"
。较旧的非HTML 5浏览器将未知类型呈现为type="text"
,因此当不支持时没有任何损失。
请参阅jQuery -禁用表单字段,了解启用/禁用字段的正确方法。输入字段的类型无关紧要——jquery足够聪明,可以为您做正确的事情。
首先。不要使用jquery的"live"api,它将被弃用。http://api.jquery.com/live/
注意:"on"api需要最新的jquery。
你想做这个吗
HTML更新
<button id="button">Add List</button><br><br>
<form id ="form" name="search" method="get" action="test.php">
<div id="maindiv">
<div id="div">
<select name ="select" >
...options...
</select>
Value:<input type="text" name="exact" id="exactField" />
From: <input type="text" name="from" id="fromField" />
To: <input type="text" name="to" id="toField" />
</div>
</div>
<br>
<input type="button" name="answer" value="Range" id="rangeButton" />
<input type="button" name="answer" value="Exact" id="exactButton" />
<br>
<input type="submit"name="search" value="Submit">
</form>
更新javascript // When exact button is clicked, disable from and exact field and enable exactfield text field
$(document).live('click','#exactButton', function(){
$('#exactField').removeAttr('disabled');
$('#fromField,#toField').attr('disabled',true);
});
// When range button is clicked, enable from and exact field and disable exactfield option
$(document).on('click','#rangeButton',function(){
$('#fromField,#toField').removeAttr('disabled');
$('#exactField"]').attr('disabled',true);
});
$('#button').click(function(){
$('#maindiv').append($('#div').clone());
});
这段代码为我工作与数字以及字符。如果我错过了什么,请告诉我。
您使用的是什么版本的jquery ?
无论如何,在1.6中,要更改disabled属性,你应该使用.prop()函数。
e。g $(this).prop('disabled', true);