問題は、JavaScriptが機能していないことです。完了したらドロップダウンからオプションを選択すると、コメントフィールドが必要です。この検証は送信ボタンで実行する必要があります。他のオプションが使用されている場合は、コメントフィールドは必須ではありません。私がドロップダウンオプションを選択して完了したら、コメント欄は必須です
<form class="form-horizontal" method="post" action="new.php">
<!-- Select Basic -->
<div class="form-group">
<label class="col-md-4 control-label" for="selectbasic">Status</label>
<div class="col-md-4">
<select id="status" name="status[]" class="form-control" >
<option value="Pending">Pending</option>
<option value="Work in process">Work in process</option>
<option value="Completed">Completed</option>
</select>
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="textinput">Comment</label>
<div class="col-md-4">
<input id="commentss" name="comment[]" type="text" placeholder="" class="form-control input-md" />
</div>
</div>
<div class="col-md-8 col-sm-12 col-24">
<div class="input_fields" style="color:black">
<button class="add_field btn " onclick="incrementValue()" >Add More</button>
<div>
<input type="text" name="mytextt[]" hidden="" ></div>
</div>
</div>
<button id="save_btn" name="save_btn" type="submit" onclick="validate();" class="btn btn-success" style="width: 10em;margin-left:10px">Save</button>
</form>
のjavascriptのindex.php:
<script type="text/javascript">
function validate()
{
var input=document.getElementById("#status");
var comm=document.getElementById('#commentss')
var inputelement=input.value;
if(inputelement=="Completed")
{
comm.required=true;
}
}
</script>
$(document).ready(function() {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields"); //Fields wrapper
var add_button = $(".add_field"); //Add button ID
var wrapper_pre1 = $(".present_fields_1"); //Fields wrapper
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).prepend('<div class="form-group"> <label class="col-md-4 control-label status" for="selectbasic" style="">Status</label><div class="col-md-6"><select id="status[]" name="status[]" class="form-control status"><option value="Pending">Pending</option><option value="Work in process">Work in process</option><option value="Completed">Completed</option></select></div></div><div class="form-group"><label class="col-md-4 control-label comment" for="textinput" style="">Comment</label><div class="col-md-4"><input id="comment[]" name="comment[]" type="text" placeholder="" class="form-control input-md comment" style=""></div></div>')
}
});
使用@DanielLane液ともれるinputElement = input.value()VARを変更します。値は関数ではありません – PhilS
私は自分のコードを更新できました。私はドロップダウンとコメントフィールドを含むボタンを追加しています。このスクリプトは追加ボタンの中で動作していません@PhilS – aiffin
バニラのJavascriptとjQueryが混在しているので、jQueryライブラリをロードしている場合は、検証のためにjQueryを活用することもできます。あなたの "追加"ボタンは、有効でない状態[]のIDを持つ選択項目を追加しています.Javascriptはそれを参照できません。ID属性には数字、文字、アンダースコア、フルコロン、私は信じており、ユニークでなければなりません。 – PhilS