If you are updating the users member data stored in Zoo Visitor outside of the normal checkout process of Store you should be using the {exp:zoo_visitor:update_form}
tag pair instead of the {exp:zoo_visitor:details}
tag pair. The update tags allows for:
The update form tag can be used to update native member fields like
password, username, screen_name, email & all custom fields you have
defined in the member channel.
Full docs on the update tag.
Something along the lines of:
{exp:zoo_visitor:update_form}
Billing City: <input name="mbr_billing_city" type="text" value="" />
{/exp:zoo_visitor:update_form}
If you are trying to update the members data during the checkout process you can simply use Store's native checkout functionality to update the member data. Something along the lines of:
{exp:store:checkout}
<label for="billing_city">Billing City</label>
{field:billing_city}
{/exp:store:checkout}
Or if you want to create a custom input you could do:
{exp:store:checkout}
<label for="billing_city">Billing City</label>
<input type="text" name="billing_city" value="{billing_city}" class="whatever" />
{/exp:store:checkout}