I have a html form which only shows a price, but don't submit anything to the server. This works fine now.
How can I add the function of running this form just from url variables, so you don't have to click the submit button if you are coming to this page with url variables?
Something like this: www.my-domain.com/formurl/?smoker=yes&amount=500000&age=20 should display the price when the page is finished loading, and change the form values according to the url variables.
Here is my html:
<form class="form-horizontal">
<label class="control-label" for="smoker">Do you smoke?</label>
<select id="smoker" name="smoker"><option value="No">No</option><option value="Yes">Yes</option></select>
<label class="control-label" for="amount">Amount</label>
<select id="amount" name="amount"><option value="500000">500 000</option><option value="1000000">1 000 000</option><option value="1500000">1 500 000</option><option value="2000000">2 000 000</option></select>
<label class="control-label" for="age">Age</label>
<input id="age" name="age" type="text" />
<button class="btn" id="calc" type="submit">Show price</button>
</form>
<div class="alert alert-info hide" id="price-result"></div>
$(document).ready(function () {
//JSON object
var obj = {"data":
[
{"age": "18","500000": "645","1000000": "1018","1500000": "1391","2000000": "1764","smoker": "No"},
{"age": "19","500000": "645","1000000": "1018","1500000": "1391","2000000": "1764","smoker": "No"},
{"age": "20","500000": "645","1000000": "1018","1500000": "1391","2000000": "1764","smoker": "No"},
{"age": "18","500000": "964","1000000": "1544","1500000": "2125","2000000": "2705","smoker": "Yes"},
{"age": "19","500000": "964","1000000": "1544","1500000": "2125","2000000": "2705","smoker": "Yes"},
{"age": "20","500000": "964","1000000": "1544","1500000": "2125","2000000": "2705","smoker": "Yes"}
]
};
//Find the value when form is submitted
$('#calc').click(function(e) {
e.preventDefault();
var data = jQuery.grep(obj.data, function(element, index){
return element.age && element.smoker; // retain appropriate elements
});
var selectedSmoke = $('#smoker').val().toString().toLowerCase();
var selectedAmount= $('#amount').val().toString().toLowerCase();
var selectedage = $('#age').val().toString().toLowerCase();
var amount = "";
$.each(data,function(k, v){
if( data[k].age.toString().toLowerCase() == selectedage &&
data[k].smoker.toString().toLowerCase() == selectedSmoke &&
data[k][selectedAmount] != undefined){
amount = data[k][selectedAmount];
}
});
//Empty the div
$('#price-result').empty();
//Show the result in div
var displayText = "<h3>Price:" + amount + "</h3>";
$("#price-result").append(amount == "" ? "Not a valid age" : displayText).removeClass("hide");
return false;//Stop page from reloading
});
});