'version'と 'productName'の2つのフィールドを組み合わせてフィールド 'endpoint'を生成しますが、それは空のように思えます。document.getElementById()。value empty
function generateEndpoint() {
var yourSelect = document.getElementById("version");
document.getElementById('endpoint').value = '/' +
document.getElementById('productName').value + '/' +
yourSelect.options[yourSelect.selectedIndex].value;
}
<div class="form-group" ng-class="{ 'has-error': invalid.productName, 'has-success': valid.productName}">
<label for="productName">product name *</label>
<input type="text" id="productName" name="productName" class="form-control" placeholder="example: myapi_fr_product " ng-model="api.productName" ng-required="true" onkeyup="generateEnpoint()">
<span id="helpBlock" class="help-block" ng-show="help.productName.required">product name is required.</span>
</div>
<div class="form-group" ng-class="{ 'has-error': invalid.version, 'has-success': valid.version}">
<label for="version">version *</label>
<select name="version" id="version" class="form-control" ng-init="api.version = api.version || ''" ng-model="api.version" ng-required="true" onchange="generateEndpoint()">
<option value=""></option>
<option value="beta">beta</option>
<option value="v1">v1</option>
</select>
<span id="helpBlock" class="help-block" ng-show="help.version.required">version is required.</span>
</div>
<div class="form-group" ng-class="{ 'has-error': invalid.endpoint, 'has-success': valid.endpoint}">
<label for="endpoint">exposure endpoint base path *</label>
<input type="text" id="endpoint" name="endpoint" class="form-control" placeholder="example: /myapi/v1" ng-model="api.endpoint" ng-required="true">
<span id="helpBlock" class="help-block" ng-show="help.endpoint.required">exposure endpoint is required.</span>
</div>
どのように私は私の問題を解決することができますか?
ありがとうございました。
私は問題を再現できません。選択を変更すると、最初の入力の値が正常に読み取られます。最初の入力を変更すると、全く異なる問題が発生します(エラーメッセージを見ると明らかです)。 – Quentin
ドロップダウンを選択すると、Product Name + Versionの値に?が追加されます。 –
コードは期待通りに機能しますが、Angular.JSを使用する場合は、DOMに直接アクセスしないでください。 AngularJSの選択については、この例を参照してください。 – Jaco