使用jquery条件语句显示id并填充文本值的麻烦

时间:2016-08-17 16:58:24

标签: jquery html5

好的,我前几天解决了类似问题,但由于某种原因,这引起了一些问题。在控制台日志中没有收到错误,因此我不能立即确定可能缺少的内容。

在这里的jQuery代码上方插入HTML ...而且仅供参考,它并没有向我显示任何类型的值。

       <td colspan="5"><select name="acctloc" id="acctloc" required>   
  <option value="" selected>Please select...</option>
  <option value="CMI1">CMI-Strategy 1</option>
  <option value="CMI2">CMI-Strategy 2</option>
  <option value="CHE3">CHE-Strategy 3</option>
  <option value="CMI-CRL2">CMI-CRL 2</option>
  <option value="CUST">CHE-Custom</option>
  <option value="Network">Network</option>
  <option value="HELOC">HELOC</option>
  </select>       

<tr id="acct_loc" style="display:none">
 <td align="right"><label for="bank_num_anc">Bank Number ex</label></td>
 <td colspan="5"><input name="bank_num_anc" id="bank_num_anc" type="text" size="8"  ></td></tr>
$(function() {
$("#acctloc").change(function() {
    if (this.value == "CHE" || this.value == "CUST") {
        $('#bank_num_anc').val('CHE')
         $('#acct_loc').css('display', 'table-row');
       alert(" new value for bank num" + $("#bank_num_anc").val());
   }  if (this.value != "CHE" || this.value != "Network" || this.value != "HELOC") {
        $('#bank_num_anc').val()=="CMI";
        $('#acct_loc').css('display', ''table-row'');
        alert(" new value for bank num " + $("#bank_num_anc").val());
    }
     if (this.value == "HELOC") {
        $('#bank_num_anc').val("HELOC");
        $('#acct_loc').css('display', ''table-row'');
        alert(" new value for bank num " + $("#bank_num_anc").val());
    } 
     if (this.value == "Network") {
            $('#bank_num_anc').val('');
            $('#acct_loc').css('display', 'none');
            alert(" new value for bank num " + 

            $("#bank_num_anc").val());
    } 
});
});

id元素没有变得可见,所以我甚至不确定字段值是否填充,尽管我没有查看来源确认。但令人怀疑的是。任何反馈或指示都表示赞赏!

我尝试添加块,内联和上面的&#39; table-row&#39;无济于事。似乎没有工作。它不会显示元素,也不会分配任何值。

2 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题原因&#34; id元素&#34;不显示是因为

$('#acct_loc').css('display', '');

将display属性设置为空字符串。

你想要的是

$('#acct_loc').css('display', 'block[or table, inline, inline-block, etc.]'); 

这当然适用于您尝试的所有地方('display', '')

答案 1 :(得分:0)

好的我明白了。我抛弃了&#34; this.val&#34;部分并且只是在select元素上专门分配了一个函数来解决这个问题。我认为另一个需要整个表单中的全局解决方案,或者只是在混合中假设一种类型的事件处理程序。我有很多! HTML部分

   <select name="acctloc" id="acctloc" onChange="funcChg()"; required>
   <option value="" selected>Please select...</option>
   <option value="CMI1">CMI-Strategy 1</option>
   <option value="CMI2">CMI-Strategy 2</option> 
   <option value="CHE3">CHE-Strategy 3</option> 
   <option value="CMI-CRL2">CMI-CRL 2</option>
   <option value="CUST">CHE-Custom</option>
   <option value="Network">Network</option>
   <option value="HELOC">HELOC</option>
   </select>
    function funcChg() {
    if ($('#acctloc').val() == "CHE3" || $('#acctloc').val() == "CUST") {
$('#bank_num_anc').val('CHE')
    $('#acct_loc_tr').css('display', '');
$('#networkacct').css('display', 'none');
$('#networkacct').val('');
   }   
   if ($('#acctloc').val() == "CMI-CRL2" || $('#acctloc').val()   == "CMI2"     || $('#acctloc').val() == "CMI1") {
     $('#bank_num_anc').val('CMI')
     $('#acct_loc_tr').css('display', '');
 $('#networkacct').css('display', 'none');
 $('#networkacct').val('');
    }
     if ($('#acctloc').val() == "HELOC") {
     $('#bank_num_anc').val('HELOC');
     $('#acct_loc_tr').css('display', '');
 $('#networkacct').css('display', 'none');
 $('#networkacct').val('');
    } 
     if  ($('#acctloc').val() == "Network")  {
  $('#bank_num_anc').val('');
  $('#acct_loc_tr').css('display', 'none');
  $('#networkacct').css('display', '');
   } 
 else {
 $('#acct_loc_tr').css('display', 'none');
 }  

}