MVC 3 , DropDownList OnSelect - asp.net-mvc-3

I have a function dropdown list. I also have two text boxes related to the dropdown list. I want the populate the the textboxes with data from the selected object when the dropdown list changes and is initialized. Is this possible?

Yes, You can use a jquery function like this:
<form>
<input class="target" type="text" value="Field 1" />
<select class="target">
<option value="option1" selected="selected">Option 1</option>
<option value="option2">Option 2</option>
</select>
</form>
<div id="other">
Trigger the handler
</div>
$('.target').change(function() {
alert('Handler for .change() called.');
});

Related

changing a forms action attribute dynamically in a go template

Currently the forms action attribute is hardcoded to the id=2
How would I dynamically set it to the ID chosen by the user when pressing submit.
<p>Select a group</p>
<form method="POST" action="/artists/id?id=2">
<label for="selection">Artists:</label>
<select id="selection" name="selection">
<option value=1>Queen</option>
<option value=2>Pink Floyd</option>
<option value=3>Scorpions</option>
</select>
<input type = "submit" value ="submit" />
</form>
Go template:
<p>Select a group</p>
<form method="POST" action="/artists/id?id=2">
<label for="selection">Artists:</label>
<select id="selection" name="selection">
{{range .}}
<option value={{.Id}}>{{.Name}}</option>
{{end}}
</select>
<input type = "submit" value ="submit" />
</form>
Used form method="GET" and made the changes suggested by #cerise

I have a form that has a Select element with countries as an option. I want to automate this select element using Cypress

I have a form that has a Select element with countries as an option. I want to automate this select element using Cypress
Want to select each country and submit the form every time.
Dummy HTML
<form id="form1">
<select id="countries">
<option id="India" value="1">India</option>
<option id="Nepal" value="2">Nepal</option>
<option id="Iran" value="3">Iran</option>
</select>
</form>
<button type="submit" form="form1" value="Submit">Submit</button>

Handling multiple forms on a single page

I have a page with a select option
<div class="col-md-7">
<select class="selection" name="selection">
<option value="ab">Form One</option>
<option value="ad">Form Two</option>
<option value="nq">Form Three</option>
</select>
</div>
<div id="content"></div>
For my JQuery, I just listen for the change
$(".selection").on("change", function(e){
if($(this).val() == "ad"){
$("#content").append(data);
}
});
Now where this blade template lives (resources/views/customer), I have created a forms folder. In this folder are form1.blade.php and two more templates for the other forms.
How would I go about added the form template into the div with the id content?
Or is there a better way of handling multiple forms for a single page?
Suppose, you have two forms like this:
View :
<form action="/url" method="post">
<input name="some_field" value="1">
<button type="submit" name="form1">Submit 1</button>
</form>
<form action="/url" method="post">
<input name="some_field" value="1">
<button type="submit" name="form2">Submit 2</button>
</form>
Now in Controller :
if ($request->has('form1')) {
//handle form1
}
if ($request->has('form2')) {
//handle form2
}
Source: https://laracasts.com/discuss/channels/laravel/two-form-on-one-page-both-submit
Assign values to submit and check to see if $request->has() the value. Then use logic inside the controller.
Just add an id to the form you wanna submit.
<script>
$(document).on("click","#formPass",function() {
$(this).parents("form").submit();
});
</script>

Load a specific option of SELECT tag while loading a template in Marionette

I'm trying to load the specific value of a drop down select tag when I'm loading that html inside the Marionette LayoutView.
The situation is
This is my html template which is passed to a Marionette LayoutView with a Model
<div class="span3">
<div class="control-group">
<label for="registeredIndicator">Registered</label>
<select class="input-medium" id="registeredIndicator">
<option value="">Select</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</div>
</div>
In that model a value registered indicator is retrieved as true or false.
My Goal is - When this template is rendered I want to display the value which is retrieved i.e. if its true, registeredIndicator should be Yes and vice-versa.
I accomplished this thing with help of jQuery inside the onRender function of LayoutView like
if(true === this.model.get('registeredIndicator')){
this.$('#registeredIndicator option:eq(1)').prop('selected', true);
}
but I got lot of drop downs in the HTML and it would not be a efficient way to check each every one with jquery.
I tried using if else inside the HTML with <%%> but this was not fruitful and is not correct also.
Is there any another approach available in which i can manipulate the data inside the template itself?
Thanks in advance!
Adding the conditional below should work:
<div class="span3">
<div class="control-group">
<label for="registeredIndicator">Registered</label>
<select class="input-medium" id="registeredIndicator">
<option value="">Select</option>
<option <%= registeredIndicator ? "selected" : "" %> value="Yes">Yes</option>
<option value="No">No</option>
</select>
</div>
</div>
Specifically I added <%= registeredIndicator ? "selected" : "" %> to your template.

Submit two forms sequentially with AJAX

I'm trying to implement the answer from this thread, however I've never used AJAX.
The first form sets a variable required in the second form, once this has been set I'd like it to then redirect as per the second form (so I'm guessing the alert wants to come out of the AJAX?)
After updating with charles babbage's answer the first form Submits.
Thanks for any help, it's greatly appreciated!
<script>
$(document).ready(function() {
$("#subbut").click(function() {
$.post($("#priceselect").attr("action"), $("#priceselect").serialize(),
function() {
$.post($("#globaliris").attr("action"), $("#globaliris").serialize(),
function() {
alert('Both forms submitted');
});
});
});
});
</script>
I've put this in the head with the aim of first submitting
<form name="priceselect" id="priceselect" method="post">
<select name="price" id="mySelect" onchange="document.getElementById('selectedValue').innerHTML = this.value;">
<option value="100">Option 1</option>
<option value="120">Option 2</option>
<option value="115">Option 3</option>
<option value="135">Option 4</option>
<option value="80" >Option 5</option>
</select>
<input value="Continue" id="subbut" type="Submit" />
</form>
which should then
(isset($_POST['price']));
$price = $_POST['price'];
in the same page before redirecting to a 3rd party with the submission of
<form id="globaliris" action="https://redirect.globaliris.com/epage.cgi" method="post" class="select">
<input type=hidden name="MERCHANT_ID" value="<?=$merchantid?>">
<input type=hidden name="ORDER_ID" value="<?=$orderid?>">
<input type=hidden name="CURRENCY" value="<?=$curr?>">
<input type=hidden name="AMOUNT" value="<?=$amount?>">
<input type=hidden name="TIMESTAMP" value="<?=$timestamp?>">
<input type=hidden name="MD5HASH" value="<?=$md5hash?>">
<input type=hidden name="AUTO_SETTLE_FLAG" value="1">
<br />
<br />
</form>
In order to trigger the action that you have specified in the Form tag on click of a button, the button should be of type Submit and also it should be inside your form. The position of Submit button is important.
<input type="submit" value="something" id="something">
Edit(as per your new question)
If you want two form's content to be submitted to one action, just add the serialises as below:
$.post($("#priceselect").attr("action"),$("#priceselect").serialize()+$("#globaliris").serialize() ,
function() {
alert('Both forms submitted');
});
});

Resources