2011-11-13 54 views
1

我有下面的代码,我禁用和启用日历可点击图标。输入类型禁用和只读行为与href不同

<p>  
    <label> 
     <input type="text" name="date18" id="date18" value="01/01/2012" 
     style="width:75px;" disabled/> 
    </label> 
    <a href="#" onclick="somecaledarrelatedstuff()" name="calid" id="calid"> 
     <img src="icon-Calendar.jpg" alt="Click to pick a date from a popup 
     calendar"/> 
    </a> 
</p> 

当我添加disable如上两个输入字段和链接日历弹出是禁用。但是因为禁用元素的值没有提交,所以我认为它是只读的。然而,问题是,当它是只读的,只有输入字段变得只读(而不是日历弹出链接),就像使用禁用。

我知道如果我想禁用(只是为了防止用户编辑)输入字段和href我可以使用disabled并有一个隐藏的输入变量,并提交它并引用该变量。但是我正在寻找另一种方法,因为如果我引入一个新的隐藏变量,我会对我的代码进行大量的重构。

谢谢。

+0

相关http://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-te –

回答

0

如果您希望输入字段被禁用,但在提交表单后仍然发送它的值,那么您可以使用一点JavaScript代码。

为了实现这一点,首先该位添加到<form>标签:

<form ... onsubmit="EnableInputs(this);"> 

然后加入这个JS功能:

function EnableInputs(oForm) { 
    oForm.elements["calid"].disabled = false; 
} 

可以使更多的元素就是这样,或者使用getElementsByTagName所有输入并循环它。

这将在提交时启用该元素,从而发送其值。

+0

是的,但它显示输入字段为可编辑字段(因为我们打开它)直到页面请求完成(直到下一页加载) – Harshana

+0

然后您可以隐藏它,或者隐藏显示“正在加载下一页,请稍候”的整个表单。 –

0

禁用不提交值,但只读提交值。

相关问题