2017-01-16 62 views
0

我呼吁NG-KEYUP功能,并试图通过实际上未得到通过的文本框的值,并得到“未定义”可变访问角度js 1中的文本框值问题?

HTML代码

<md-input-container class="md-icon-float md-block"> 
       <label >First Name </label> 
       <md-icon md-font-icon="icon-account" class="name"></md-icon> 
       <input type="fname" id="fname" name="fname" ng-value = "{{vm.form.fname}}" ng-model="vm.contact.fname" ng-pattern="/^[a-zA-Z ]{2,30}$/" type="text" ng-keyup = "vm.firstLetterCaps('fname',vm.form.fname)" required> 
       <div ng-messages="contactForm.fname.$error" role="alert"> 
         <div ng-message="required"> 
          <span>First name is required</span> 
         </div> 
         <div ng-message="pattern"> 
          <span>First name must be a valid </span> 
         </div> 
     </div> 
</md-input-container> 

控制器代码功能

function firstLetterCaps(textboxid, str){ 
      console.log(textboxid) 
      console.log(str) 
      // string with alteast one character 
       if (str && str.length >= 1) 
       {  
        var firstChar = str.charAt(0); 
        var remainingStr = str.slice(1); 
        str = firstChar.toUpperCase() + remainingStr; 
       } 
       if() 
       document.getElementById(textboxid).value = str; 
      } 
+0

只是为了澄清,你需要一个'NG-value'什么,当你有一个'NG-model'? – lealceldeiro

+0

我已经尝试过,但在控制台中获得了未定义的值。 – SaMeEr

回答

0
<input type="fname" id="fname" name="fname" ng-value = "{{vm.form.fname}}" 
    ng-model="vm.contact.fname" ng-pattern="/^[a-zA-Z ]{2,30}$/" type="text" 
    ng-keyup = "vm.firstLetterCaps('fname',vm.form.fname)" required> 

您可以直接通过您的ng-model本身,象下面这样:

ng-keyup = "vm.firstLetterCaps('fname',vm.contact.fname)" 
+0

我已经尝试过,但在控制台中得到了未定义的值。 – SaMeEr

+0

@SaMeEr:所以基本上你想要在你的输入字段右键添加你的第一个字母,并检查你的虚拟机是否在你的控制器中有一个联系对象,比如vm.contact = {} – Thalaivar

+0

是的。我已经添加了,但仍然有同样的问题。 – SaMeEr