2016-08-25 16 views
0

我想添加文本輸入類型的電子郵件沒有成功 這裏是我正在試圖做添加文本的輸入類型的電子郵件角的jQuery

$scope.lastFocused; 
    angular.element("input[type='text'], input[type='url'], input[type='email'], input[type='password'], input[type='search'], input[type='tel'], textarea").focus(function() { 

    $scope.lastFocused = document.activeElement; 
    }); 

    $scope.insertText = function(text) { 
    var input = $scope.lastFocused; 
    console.log(input); 
    if (input == undefined) { return; } 
    var scrollPos = input.scrollTop; 
    var pos = input.selectionStart; 
    var front = (input.value).substring(0, pos); 
    var back = (input.value).substring(pos, input.value.length); 
    input.value = front+text+back; 
    pos = pos + text.length; 

    input.scrollTop = scrollPos; 
    console.log(angular.element(input).val()); 
    angular.element(input).trigger('input'); 

}; 

我認爲問題已與做事實上,我試圖觸發輸入文字和電子郵件不支持input.selectionStart;。我得到的錯誤

無法讀取從「HTMLInputElement」的「selectionStart」屬性: 輸入元素的類型(「電子郵件」)不支持選擇。

由於某種原因,電子郵件不會接受任何值。

我只使用chrome。 任何解決方法將是apreciated

+0

對不起,我知道它不是完整的代碼 –

回答

1

這裏是另一篇文章具有完全相同類型的問題的答案的鏈接,你:

https://stackoverflow.com/a/21959157/6032583

它看起來像你將需要找到另一種方式,因爲「selectionStart」是不受輸入電子郵件類型的支持。

+0

謝謝我沒有意識到真正的問題是什麼,直到後來謝謝你 –

1

我不明白你想達到什麼。不過,我想你想改變指令的type屬性。

你可以只使用角度實現它,如下所示: <input type={{foo.bar}}>

後來在控制器相應改變的$scope.foo.bar值。

此外,{{}}之間的任何內容都是表達式,它可以評估任何內容。 PS:使用Jquery和AngularJS是多餘的,不被認爲是一種好的做法。

+0

謝謝你的時間,不幸的是,這是一個鉻擴展,因此你不能真正改變網站上的元素(你可以但將它連接到範圍再麻煩)我會給你一個投票,因爲它有可能改變類型角度來與jquery精簡版,但它沒有我需要的所有功能。 –

相關問題