Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保“插入日期”保持插入状态,直到取消选中复选框?_Javascript - Fatal编程技术网

Javascript 如何确保“插入日期”保持插入状态,直到取消选中复选框?

Javascript 如何确保“插入日期”保持插入状态,直到取消选中复选框?,javascript,Javascript,根据下面的代码,当用户选中一个框时,日期会自动插入到名为cDate的textbox控件中。这非常有效: function ClickBox(cb) { var tr = cb; while (tr.tagName != "TR") { tr = tr.parentNode; if (tr == null) return; // something went wrong } var inps = tr.getElement

根据下面的代码,当用户选中一个框时,日期会自动插入到名为cDate的textbox控件中。这非常有效:

function ClickBox(cb) { 
    var tr = cb; 
    while (tr.tagName != "TR") { 
        tr = tr.parentNode; 
        if (tr == null) return; // something went wrong 
    } 
    var inps = tr.getElementsByTagName("input"); 
    for (var i = 0; i < inps.length; ++i) { 
        var inp = inps[i]; 
        if (inp.name.indexOf("cDate") >= 0) { 
            inp.value = rightDate(); 
            break; 
        } 
    } 
}
功能点击框(cb){
var-tr=cb;
而(tr.tagName!=“tr”){
tr=tr.parentNode;
if(tr==null)return;//出了问题
} 
var inps=tr.getElementsByTagName(“输入”);
对于(var i=0;i=0{
inp.value=rightDate();
打破
} 
} 
}
这些是受影响的控件:

    <ItemTemplate> 
     <asp:CheckBox ID="myrecord" runat="server" onclick="ClickBox(this)" /> 
    </ItemTemplate>  

   <ItemTemplate> 
    <asp:TextBox runat="server" style="border: none;" ID="cDate"></asp:TextBox> 
   </ItemTemplate>

用户当前面临的问题是,选中复选框并插入日期后,删除插入日期的唯一方法是单击重置按钮

他们希望在取消选中复选框后,插入的日期消失

下面修改的代码不起作用。我没有收到任何错误,但是,每当我选中一个框或取消选中它,什么都没有发生-没有日期被插入了

function ClickBox(cb) { 
        var tr = cb;
        var inps = tr.getElementsByTagName("input"); 
        if(cb.checked == 1){ // CheckBox checked condition 

                while (tr.tagName != "TR") { 
                        tr = tr.parentNode; 
                        if (tr == null) return; // something went wrong 
                } 
                for (var i = 0; i < inps.length; ++i) { 
                        var inp = inps[i]; 
                        if (inp.name.indexOf("cDate") >= 0) { 
                                inp.value = rightDate(); 
                                break; 
                        } 
                } 
        } 
        else{ 
                for (var i = 0; i < inps.length; ++i) { 
                        var inp = inps[i]; 
                        inp.value = ''; 
                } 
        } 
}
功能点击框(cb){
var-tr=cb;
var inps=tr.getElementsByTagName(“输入”);
如果(cb.checked==1){//CheckBox选中条件
而(tr.tagName!=“tr”){
tr=tr.parentNode;
if(tr==null)return;//出了问题
} 
对于(var i=0;i=0{
inp.value=rightDate();
打破
} 
} 
} 
否则{
对于(var i=0;i
我不确定我做错了什么


感谢您的帮助。

这里有一个非常简单的解决方案,适合我:

ASP.NET标记:

<div>
  <asp:CheckBox ID="cbDate" runat="server" onclick="ClickBox(this)" />
  <br />
  <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
</div>

希望这能有所帮助。

非常感谢@Sameer的回复,但每次单击复选框时,我都会在这一行上出现“预期对象”错误:。不知道这对你有什么作用。嗯,可能有很多东西,@Kenny-你使用的是什么浏览器(包括版本)?我的解决方案适用于
chrome21
firefox15
internetexplorer9
。您应该检查所有浏览器上的JavaScript设置。此外,请检查ASP.NET标记生成的HTML,并确保
输出到
function ClickBox(checkbox) {
  var dateCheckbox = checkbox;
  var dateTextBox = document.getElementById("txtDate");

  if (dateCheckbox.checked === true) {
    dateTextBox.value = "TODAY";
  } else {
    dateTextBox.value = "";
  }
}