2016-05-06 98 views
0

我有一个包含两个值和一个文本框的下拉列表。我想是 - - 如果我选择选项1,文本框应该是这样的atmost 10个字符可以输入 - 如果我选择选项2,不应该有限制的最大长度为文本框在运行时修改innerhtml属性

我不是确定它是如何完成的。可能是通过修改innerhtml,但不知道如何进行!下面是我的下拉和文本框的.jsp文件代码,它现在显示我需要动态生成的maxlength 10的文本框。

<select name="filetype" id="3"> 
    <option value="null">--</option> 
    <option value="CTN" >CTN</option> 
    <option value="SLID" >SLID</option> 
</select> 

<h2>Enter the number<font color="red">*</font></h2> 
     <input type="text" name="customerID" maxlength=10 size="50" id="4"/> 
     <input type="submit" value="Submit Data" /> 

回答

0

既然你用标签这里这个问题你是一个简单的例子,如何实现这一点:

$('input[name="customerID"]').attr('maxlength') 

这是一个getter。要设置一个值,你必须写第二个参数。整个例子应该是:

$(document).ready(function() { 

    $('select[name="filetype"]').on('change', function(e) { 
    var val = $(this).val(); 
    if(val === "CTN") { 
     $('input[name="customerID"]').attr('maxlength', 10); //maxlength =10 
    } else if(val === "SLID") { 
     $('input[name="customerID"]').removeAttr('maxlength'); //no maxlength 
    } 
    }); 
}); 
0

一些JQuery的这样的事情可能的工作原理:

$("h2 input").attr({maxlength: 30}); 
+0

这是错误的。如果你设置了一个参数需要'{}'语法 –

+0

我编辑了我的答案,对不起,谢谢注意 – pelomeduda

0

下面写一个onchange事件select。获取selected value并根据情况添加或textbox

$("select[name=filetype]").on('change', function() { 
 
    var val = $(this).find('option:selected').val(); 
 
    $('input[name="customerID"]').val(''); 
 
    if (val == "CTN") 
 
    $('input[name="customerID"]').attr('maxlength', 10); 
 
    else if (val == "SLID") 
 
    $('input[name="customerID"]').removeAttr('maxlength'); 
 
    else 
 
    return false; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="filetype" id="3"> 
 
    <option value="null">--</option> 
 
    <option value="CTN">CTN</option> 
 
    <option value="SLID">SLID</option> 
 
</select> 
 

 
<h2>Enter the number<font color="red">*</font></h2> 
 
<input type="text" name="customerID" maxlength="10" size="50" id="4" /> 
 
<input type="submit" value="Submit Data" />

0

删除maxlength属性/下面试试这个代码。

<script> 
$(function() { 
    $('select').change(function() { 
     if ($(this).val() == "CTN") { 
      $('input:first').attr('maxlength', '10') 
     } 
     else if ($(this).val() == "SLID") { 
      $('input:first').attr('maxlength', '') 
     } 
    }); 
}); 
</script> 
<select name="filetype" id="3"> 
    <option value="null">--</option> 
    <option value="CTN">CTN</option> 
    <option value="SLID">SLID</option> 
</select> 

<h2>Enter the number<font color="red">*</font></h2> 
<input type="text" name="customerID" maxlength="10" size="50" id="4" /> 
<input type="submit" value="Submit Data" />